+
+
+
+
+
+
+
+
+
diff --git a/Domains/Frontend/MiniProjects/new1/1.js b/Domains/Frontend/MiniProjects/new1/1.js
new file mode 100644
index 00000000..6621a276
--- /dev/null
+++ b/Domains/Frontend/MiniProjects/new1/1.js
@@ -0,0 +1,143 @@
+
+const playerScoreEl = document.getElementById('player-score');
+const computerScoreEl = document.getElementById('computer-score');
+const playerChoiceEl = document.getElementById('player-choice');
+const computerChoiceEl = document.getElementById('computer-choice');
+const resultEl = document.getElementById('result');
+const actionMessageEl = document.getElementById('action-message');
+const choiceButtons = document.querySelectorAll('.choices button');
+const playerChoiceBox = document.getElementById('player-choice-box');
+const computerChoiceBox = document.getElementById('computer-choice-box');
+const resetButton = document.getElementById('reset-button');
+
+
+let playerScore = 0;
+let computerScore = 0;
+const choices = ['rock', 'paper', 'scissors'];
+const emojiMap = {
+ rock: 'πͺ¨',
+ paper: 'π',
+ scissors: 'βοΈ'
+};
+
+choiceButtons.forEach(button => {
+ button.addEventListener('click', () => handlePlayerChoice(button.id));
+});
+
+resetButton.addEventListener('click', resetGame);
+
+function handlePlayerChoice(playerChoice) {
+ toggleButtons(false);
+
+ playerChoiceBox.classList.remove('visible');
+ computerChoiceBox.classList.remove('visible');
+ resultEl.classList.remove('visible');
+ actionMessageEl.textContent = 'Computer is thinking...';
+ playerChoiceEl.textContent = emojiMap[playerChoice];
+ playerChoiceBox.classList.add('visible');
+
+ setTimeout(() => {
+ const computerChoice = getComputerChoice();
+ computerChoiceEl.textContent = emojiMap[computerChoice];
+ computerChoiceBox.classList.add('visible');
+
+ const result = getResult(playerChoice, computerChoice);
+ updateScore(result);
+
+ displayResult(result);
+ toggleButtons(true);
+
+ resetButton.classList.add('visible');
+ }, 1000);
+
+/**
+ * Generates a random choice for the computer.
+ * @returns {string} - The computer's choice ('rock', 'paper', or 'scissors').
+ */
+function getComputerChoice() {
+ const randomNumber = Math.floor(Math.random() * 3);
+ return choices[randomNumber];
+}
+
+/**
+ * Determines the winner of the round.
+ * @param {string} player - The player's choice.
+ * @param {string} computer - The computer's choice.
+ * @returns {string} - The result message ('win', 'lose', or 'draw').
+ */
+function getResult(player, computer) {
+ if (player === computer) {
+ return 'draw';
+ }
+ if (
+ (player === 'rock' && computer === 'scissors') ||
+ (player === 'paper' && computer === 'rock') ||
+ (player === 'scissors' && computer === 'paper')
+ ) {
+ return 'win';
+ }
+ return 'lose';
+}
+
+/**
+ * Updates the score based on the round result.
+ * @param {string} result - The result of the round.
+ */
+function updateScore(result) {
+ if (result === 'win') {
+ playerScore++;
+ playerScoreEl.textContent = playerScore;
+ } else if (result === 'lose') {
+ computerScore++;
+ computerScoreEl.textContent = computerScore;
+ }
+}
+
+/**
+ * Displays the final result message and applies styling.
+ * @param {string} result - The result of the round.
+ */
+function displayResult(result) {
+ let message = '';
+ switch(result) {
+ case 'win':
+ message = 'You Win!';
+ break;
+ case 'lose':
+ message = 'You Lose!';
+ break;
+ case 'draw':
+ message = "It's a Draw!";
+ break;
+ }
+ resultEl.textContent = message;
+ resultEl.className = `result-${result}`; // e.g., 'result-win'
+ resultEl.classList.add('visible');
+ actionMessageEl.textContent = 'Play again?';
+}
+
+/**
+ * Resets the game to its initial state.
+ */
+function resetGame() {
+ playerScore = 0;
+ computerScore = 0;
+ playerScoreEl.textContent = '0';
+ computerScoreEl.textContent = '0';
+ resultEl.classList.remove('visible');
+ playerChoiceBox.classList.remove('visible');
+ computerChoiceBox.classList.remove('visible');
+ actionMessageEl.textContent = 'Choose your weapon!';
+ resetButton.classList.remove('visible');
+}
+
+/**
+ * Enables or disables the choice buttons.
+ * @param {boolean} enable - True to enable, false to disable.
+ */
+function toggleButtons(enable) {
+ choiceButtons.forEach(button => {
+ button.disabled = !enable;
+ });
+}
+}
\ No newline at end of file
diff --git a/Domains/Frontend/MiniProjects/new1/README.md b/Domains/Frontend/MiniProjects/new1/README.md
new file mode 100644
index 00000000..5ee892ad
--- /dev/null
+++ b/Domains/Frontend/MiniProjects/new1/README.md
@@ -0,0 +1,120 @@
+# β Todo App
+
+**Contributor:** Dhiraj201226
+**Domain:** Frontend
+**Difficulty:** Beginner
+**Tech Stack:** HTML, CSS, JavaScript
+
+---
+
+## π Description
+
+This is a sleek and interactive web game where you can play the classic Rock, Paper, Scissors against the computer.
+
+The page has a modern dark theme and features large, satisfying emoji buttons (πͺ¨, π, βοΈ) that animate when you play. It keeps a running score for both you and the computer. When you make a move, there's a brief, suspenseful pause before the choices are revealed with a smooth animation.
+
+The final result is displayed in a large, colorful messageβgreen for a win, red for a lossβmaking it instantly clear who won the round. A "Play Again" button appears after each round, letting you reset the scores and start a new match anytime.
+
+## π― Features
+
+Interactive Gameplay: The game responds to player clicks on the Rock, Paper, and Scissors buttons to initiate a round.
+
+Score Tracking: It keeps a running score for both the player and the computer, updating the display after each round.
+
+Random Computer AI: The computer's choice is randomly generated for each round, making the game unpredictable.
+
+Suspenseful Delay: A one-second setTimeout creates a brief, dramatic pause after you make your choice, simulating the computer "thinking" before revealing its move.
+
+Clear Result Display: The game clearly announces whether you win, lose, or draw.
+
+Animated UI: The game uses CSS classes like .visible to create smooth fade-in and scaling animations for the choices and results, making the experience more polished.
+
+Game Reset: A "Play Again" button appears after the first round, allowing the user to reset the scores and start a new game at any time.
+
+## π οΈ Tech Stack
+
+HTML (HyperText Markup Language): This is used for the core structure of your game, defining all the elements like the title, score boxes, buttons, and result displays.
+
+CSS (Cascading Style Sheets): This provides all the styling, including the dark theme, colors, fonts, button shapes, and the animations that make the game feel interactive and polished.
+
+JavaScript (Vanilla JS): This is the programming language that runs all the game's logic. It's "vanilla" because it doesn't use any external frameworks or libraries. It handles everything from detecting button clicks and generating the computer's choice to updating the score and displaying the final result.
+
+---
+
+## π How to Run
+
+### Method 1: Direct Browser
+
+1. Download or clone this folder
+2. Open `index.html` in your browser
+3. Start playing!!
+
+### Method 2: Live Server
+
+1. Install VS Code Live Server extension
+2. Right-click on `1.html`
+3. Select "Open with Live Server"
+4. App opens at `http://localhost:5500`
+
+---
+
+## π Project Structure
+
+```
+new1/
+βββ 1.html # Main HTML file
+βββ 1.css # Styling
+βββ 1.js # JavaScript logic
+βββ README.md # Documentation
+βββ ss.png # Web screenshot
+
+
+## π Learning Outcomes
+
+->DOM Manipulation
+->Event Handling
+->Conditional Logic
+->State Management
+->Asynchronous JavaScript
+->CSS Transitions & Animations
+->Modern CSS Layout
+---
+
+
+## π Known Issues
+
+->Rapid Clicking Issue: If you click a choice button very rapidly, it's possible to start a new round before the 1-second setTimeout delay from the previous round has finished. This can cause the UI animations and state updates to get slightly out of sync. It's a minor visual glitch but can be confusing.
+
+->No Clear "End Game": The score keeps track indefinitely. While this is fine for a casual game, there's no defined win condition (e.g., "First to 5 wins!"). A player might not know when a "match" is over.
+
+->Draws Don't Feel Neutral: A "draw" round still prompts the user with "Play again?", which feels a bit like the end of a decisive round. It might be better to immediately prompt "Go again!" or "It's a tie, choose again!" without needing the reset button.
+
+---
+
+## π Future Enhancements
+
+1. Make a dataabase to store history of all games
+2. Also add a option to play with friends
+3. Also to play with other online players
+4. Improve UI/UX
+5. Some rewards after winning a game to make it more interesting.
+
+---
+
+## π License
+
+MIT License - Free to use and modify!
+
+---
+
+## π€ Contributing
+
+This is a sample project for ProjectHive. Feel free to:
+- Fork and enhance
+- Report issues
+- Suggest improvements
+- Use as learning material
+
+---
+
+**Happy Coding! π**
diff --git a/Domains/Frontend/MiniProjects/new1/ss.png b/Domains/Frontend/MiniProjects/new1/ss.png
new file mode 100644
index 00000000..ca831073
Binary files /dev/null and b/Domains/Frontend/MiniProjects/new1/ss.png differ
diff --git a/data/MNIST/raw/t10k-images-idx3-ubyte b/data/MNIST/raw/t10k-images-idx3-ubyte
new file mode 100644
index 00000000..1170b2ca
Binary files /dev/null and b/data/MNIST/raw/t10k-images-idx3-ubyte differ
diff --git a/data/MNIST/raw/t10k-images-idx3-ubyte.gz b/data/MNIST/raw/t10k-images-idx3-ubyte.gz
new file mode 100644
index 00000000..5ace8ea9
Binary files /dev/null and b/data/MNIST/raw/t10k-images-idx3-ubyte.gz differ
diff --git a/data/MNIST/raw/t10k-labels-idx1-ubyte b/data/MNIST/raw/t10k-labels-idx1-ubyte
new file mode 100644
index 00000000..d1c3a970
Binary files /dev/null and b/data/MNIST/raw/t10k-labels-idx1-ubyte differ
diff --git a/data/MNIST/raw/t10k-labels-idx1-ubyte.gz b/data/MNIST/raw/t10k-labels-idx1-ubyte.gz
new file mode 100644
index 00000000..a7e14154
Binary files /dev/null and b/data/MNIST/raw/t10k-labels-idx1-ubyte.gz differ
diff --git a/data/MNIST/raw/train-images-idx3-ubyte b/data/MNIST/raw/train-images-idx3-ubyte
new file mode 100644
index 00000000..bbce2765
Binary files /dev/null and b/data/MNIST/raw/train-images-idx3-ubyte differ
diff --git a/data/MNIST/raw/train-images-idx3-ubyte.gz b/data/MNIST/raw/train-images-idx3-ubyte.gz
new file mode 100644
index 00000000..b50e4b6b
Binary files /dev/null and b/data/MNIST/raw/train-images-idx3-ubyte.gz differ
diff --git a/data/MNIST/raw/train-labels-idx1-ubyte b/data/MNIST/raw/train-labels-idx1-ubyte
new file mode 100644
index 00000000..d6b4c5db
Binary files /dev/null and b/data/MNIST/raw/train-labels-idx1-ubyte differ
diff --git a/data/MNIST/raw/train-labels-idx1-ubyte.gz b/data/MNIST/raw/train-labels-idx1-ubyte.gz
new file mode 100644
index 00000000..707a576b
Binary files /dev/null and b/data/MNIST/raw/train-labels-idx1-ubyte.gz differ
diff --git a/mnist_nn.pth b/mnist_nn.pth
new file mode 100644
index 00000000..f72c6a82
Binary files /dev/null and b/mnist_nn.pth differ
diff --git a/mnist_nn1.pth b/mnist_nn1.pth
new file mode 100644
index 00000000..f536d66a
Binary files /dev/null and b/mnist_nn1.pth differ
diff --git a/viseron b/viseron
new file mode 160000
index 00000000..73ab4563
--- /dev/null
+++ b/viseron
@@ -0,0 +1 @@
+Subproject commit 73ab456331a62188851dbdd548c958964a07aa5f