CV

2019
30 mins
Frontend Development
Lets hop on a quick 15 minute call to introduce each other and talk about your requirements and expectations.

2019
30 mins
Frontend Development
Explore more projects that might interest you.

Every developer remembers their first "real" project. For me, it wasn’t just about making things look pretty with CSS it was about making them functional. My latest project, a Modern ToDo List, was the perfect playground to move beyond static sites and into the world of dynamic user interfaces.
The goal was simple but essential, Creating a task manager that feels snappy, looks modern, and most importantly doesn't forget your tasks the moment you refresh the page.
HTML5: Semantic structure.
CSS3: Flexbox for layout and custom styling for that "clean" aesthetic.
Vanilla JavaScript: No frameworks, just pure DOM manipulation.
Harnessing the Power of localStorage:
The biggest hurdle for any beginner web app is persistence. By default, JavaScript variables clear out on a page refresh. To solve this, I utilized the Web Storage API. Instead of just adding a task to the UI, I treated my task list as a "State." Whenever a user adds or deletes a task, two things happen: The UI updates. The data is stringified and saved to localStorage.
The Logic: Handling User Input:
The core of the app lives in the event listeners.
Event Delegation, Performance & Scalability:
Rather than adding an event listener to every single "Delete" button (which is heavy on memory), I used Event Delegation. I added one listener to the parent container. When a click occurs, the app checks if the target was a delete button or a task item, then reacts accordingly.
The trickiest part was synchronization. Early on, I noticed that if I deleted a task from the UI but forgot to update the local storage array, the task would "ghost" back into existence after a refresh.
The Solution: I created a single saveData() function that I trigger after every modification. It’s a "Single Source of Truth" approach that keeps the UI and the storage perfectly in sync.
While the app is fully functional, I’m looking to level it up by:
Drag-and-Drop: Implementing the HTML5 Drag and Drop API to reorder tasks.
Dark Mode: Adding a toggle for late-night productivity sessions.
Building this project taught me that you don't need a heavy framework like React to build something useful. Understanding how the browser interprets the Document Object Model (DOM) is a superpower for any frontend developer.
Check out the code: GitHub Repository
Live Demo: Try the App