This repository contains my foundational web development projects, completed as part of The Odin Project (TOP) curriculum. This self-directed work was critical for establishing proficiency in core front-end technologies and essential programming logic within a Linux development environment.
Technologies: HTML, CSS, JavaScript, Linux/Virtual Environments.
Key Project Highlights:
JavaScript Calculator: A fully functional application built to solidify skills in complex DOM manipulation and state management.
Etch-a-Sketch: An interactive drawing grid project used to master event handling and dynamic CSS grid generation.
Rock Paper Scissors: A classic game developed to implement robust game loop logic, conditional scorin
- Date: 11-29-2024 to 12-01-2024
- Live Demo: Click to Play
-
Core JavaScript Logic: Implemented game flow using
if/elsestatements andswitchcases. -
User Input: Learned to use
prompt()for user input and discovered that it always returns a string, requiring potential type conversion. -
Randomization: Mastered the use of
Math.random()andMath.floor()to generate pseudo-random numbers.-
Math.random()returns a float$\ge 0$ and$< 1$ (it never reaches 1). -
Math.floor()always rounds down to the largest integer less than or equal to the number.
-
-
Useful Snippet: Solidified the pattern for getting a random integer within a range (e.g., 1 to 3):
let num = Math.floor(Math.random() * 3) + 1;
- Date: (Late 2024) to 01-08-2025
- Live Demo: Click to Play
- DOM Manipulation: Gained extensive experience in creating, modifying, and deleting HTML elements entirely with JavaScript.
- Interactive UI: Developed skills in building an interactive interface that responds to user events (like mouse-over).
- CSS & JavaScript Integration: Learned to dynamically add and remove CSS classes with JavaScript to change element styles.
- Layout Management: Deepened my understanding of Flexbox for creating and managing grid-based layouts.
- External Assets: Practiced using external libraries and assets.
- Date: 01-09-2025 to 01-10-2025
- Live Demo: Click to Play
- Complex Problem Solving: Practiced breaking down a larger-scale problem (calculator logic) into smaller, manageable functions and steps.
- JavaScript Functions: Enhanced my ability to organize code into reusable and modular functions.
- Advanced CSS Layout: Gained more experience using Flexbox and CSS selectors to create a complex, responsive layout.