diff --git a/data/projects.json b/data/projects.json index 39e1ccf..ef0d353 100644 --- a/data/projects.json +++ b/data/projects.json @@ -143,4 +143,37 @@ "categoryKey": "data", "difficulty": "easy" } + , + { + "title": "Number Guessing Game", + "slug": "number-guessing-game", + "description": "Guess a random number with feedback and attempt tracking.", + "category": "Small Games", + "categoryKey": "games", + "difficulty": "easy" + }, + { + "title": "Text Encryption / Decryption Tool", + "slug": "text-encryption-decryption", + "description": "Encrypt and decrypt text using simple algorithms.", + "category": "Productivity", + "categoryKey": "productivity", + "difficulty": "easy" + }, + { + "title": "Rock-Paper-Scissors Game", + "slug": "rock-paper-scissors", + "description": "Play rock-paper-scissors against the computer with score tracking.", + "category": "Small Games", + "categoryKey": "games", + "difficulty": "easy" + }, + { + "title": "QR Code Generator & Scanner", + "slug": "qr-code-generator-scanner", + "description": "Generate and scan QR codes from text or images.", + "category": "Mini Data", + "categoryKey": "data", + "difficulty": "medium" + } ] \ No newline at end of file diff --git a/projects/number-guessing-game/index.html b/projects/number-guessing-game/index.html new file mode 100644 index 0000000..f70b83a --- /dev/null +++ b/projects/number-guessing-game/index.html @@ -0,0 +1,20 @@ + + + + + + Number Guessing Game + + + +

Number Guessing Game

+
+ + + + + +
+ + + \ No newline at end of file diff --git a/projects/number-guessing-game/main.js b/projects/number-guessing-game/main.js new file mode 100644 index 0000000..64d8fa1 --- /dev/null +++ b/projects/number-guessing-game/main.js @@ -0,0 +1,15 @@ +// TODO: Generate a random number +// TODO: Handle user guess input +// TODO: Compare guess to target number +// TODO: Provide feedback (too high, too low, correct) +// TODO: Track number of attempts +// TODO: Restart game functionality + +function initNumberGuessingGame() { + // TODO: Generate random number + // TODO: Handle user input and feedback + // TODO: Track attempts + // TODO: Restart game +} + +window.addEventListener('DOMContentLoaded', initNumberGuessingGame); \ No newline at end of file diff --git a/projects/number-guessing-game/styles.css b/projects/number-guessing-game/styles.css new file mode 100644 index 0000000..95f3d47 --- /dev/null +++ b/projects/number-guessing-game/styles.css @@ -0,0 +1 @@ +/* TODO: Style game container, input, button, feedback, attempts, restart button */ \ No newline at end of file diff --git a/projects/qr-code-generator-scanner/index.html b/projects/qr-code-generator-scanner/index.html new file mode 100644 index 0000000..da91799 --- /dev/null +++ b/projects/qr-code-generator-scanner/index.html @@ -0,0 +1,20 @@ + + + + + + QR Code Generator & Scanner + + + +

QR Code Generator & Scanner

+
+ + + + + +
+ + + \ No newline at end of file diff --git a/projects/qr-code-generator-scanner/main.js b/projects/qr-code-generator-scanner/main.js new file mode 100644 index 0000000..5e1eae6 --- /dev/null +++ b/projects/qr-code-generator-scanner/main.js @@ -0,0 +1,14 @@ +// TODO: Generate QR code from input text/URL +// TODO: Display generated QR code +// TODO: Download QR code image +// TODO: Scan uploaded QR code image +// TODO: Display scanned QR code result + +function initQRCodeGeneratorScanner() { + // TODO: Generate QR code from input + // TODO: Scan QR code from image + // TODO: Display results + // TODO: Download QR code +} + +window.addEventListener('DOMContentLoaded', initQRCodeGeneratorScanner); \ No newline at end of file diff --git a/projects/qr-code-generator-scanner/styles.css b/projects/qr-code-generator-scanner/styles.css new file mode 100644 index 0000000..8cd3811 --- /dev/null +++ b/projects/qr-code-generator-scanner/styles.css @@ -0,0 +1 @@ +/* TODO: Style QR container, input, QR code display, download button, scan input, result display */ \ No newline at end of file diff --git a/projects/rock-paper-scissors/index.html b/projects/rock-paper-scissors/index.html new file mode 100644 index 0000000..e55fee6 --- /dev/null +++ b/projects/rock-paper-scissors/index.html @@ -0,0 +1,20 @@ + + + + + + Rock-Paper-Scissors Game + + + +

Rock-Paper-Scissors Game

+
+ + + + + +
+ + + \ No newline at end of file diff --git a/projects/rock-paper-scissors/main.js b/projects/rock-paper-scissors/main.js new file mode 100644 index 0000000..089cdee --- /dev/null +++ b/projects/rock-paper-scissors/main.js @@ -0,0 +1,14 @@ +// TODO: Handle user selection (rock, paper, scissors) +// TODO: Generate computer choice +// TODO: Determine winner/loser/draw +// TODO: Update and display scoreboard +// TODO: Restart game functionality + +function initRockPaperScissors() { + // TODO: Handle user choice + // TODO: Generate computer choice + // TODO: Determine winner + // TODO: Update scoreboard +} + +window.addEventListener('DOMContentLoaded', initRockPaperScissors); \ No newline at end of file diff --git a/projects/rock-paper-scissors/styles.css b/projects/rock-paper-scissors/styles.css new file mode 100644 index 0000000..bfbf614 --- /dev/null +++ b/projects/rock-paper-scissors/styles.css @@ -0,0 +1 @@ +/* TODO: Style RPS container, buttons, choices display, scoreboard, restart button */ \ No newline at end of file diff --git a/projects/text-encryption-decryption/index.html b/projects/text-encryption-decryption/index.html new file mode 100644 index 0000000..8fe3990 --- /dev/null +++ b/projects/text-encryption-decryption/index.html @@ -0,0 +1,20 @@ + + + + + + Text Encryption / Decryption Tool + + + +

Text Encryption / Decryption Tool

+
+ + + + + +
+ + + \ No newline at end of file diff --git a/projects/text-encryption-decryption/main.js b/projects/text-encryption-decryption/main.js new file mode 100644 index 0000000..b57141e --- /dev/null +++ b/projects/text-encryption-decryption/main.js @@ -0,0 +1,14 @@ +// TODO: Encrypt input text (e.g., Caesar cipher) +// TODO: Decrypt input text +// TODO: Handle input and output display +// TODO: Copy result to clipboard +// TODO: Select encryption algorithm + +function initTextEncryptionDecryption() { + // TODO: Handle text input + // TODO: Encrypt and decrypt functions + // TODO: Display result + // TODO: Copy to clipboard +} + +window.addEventListener('DOMContentLoaded', initTextEncryptionDecryption); \ No newline at end of file diff --git a/projects/text-encryption-decryption/styles.css b/projects/text-encryption-decryption/styles.css new file mode 100644 index 0000000..b05f384 --- /dev/null +++ b/projects/text-encryption-decryption/styles.css @@ -0,0 +1 @@ +/* TODO: Style tool container, textarea, buttons, result display, algorithm selector */ \ No newline at end of file