Skip to content

This project is a part of The Odin Project's advanced JavaScript curriculum. It’s a web application designed to manage tasks across different projects, allowing users to create, save, and organize to-do items in custom or default categories.

Notifications You must be signed in to change notification settings

fabiusgasber/todo-list

Repository files navigation

To-Do List

This project is a part of The Odin Project's advanced JavaScript curriculum. It’s a web application designed to manage tasks across different projects, allowing users to create, save, and organize to-do items in custom or default categories. It uses local storage for data persistence, ensuring tasks remain available even after refreshing the page.

Key Features

  • Task Creation and Organization: Easily add and save to-do items in various projects.
  • Persistent Data: Local storage ensures your tasks are saved and remain accessible across sessions.
  • Project Organization: Sort tasks into custom or default projects for better organization.

Project Goals

The primary objective was to write clean, organized, and maintainable code by leveraging the following principles:

  • Modular Code Structure: Organize code into ES6 Modules for better readability and maintainability.
  • IIFEs, Classes, and Prototypal Inheritance: Utilize JavaScript features for efficient code structure.
  • SOLID Principles: Apply principles of clean code:
    • Single Responsibility: Each component or class has a specific, focused responsibility.
    • Open/Closed: Components are open to extension but closed to modification.
    • Liskov Substitution: Derived classes or modules can replace their base counterparts.
    • Interface Segregation: Avoid imposing unnecessary methods on classes.
    • Dependency Inversion: Rely on abstractions rather than concrete implementations.

What I Learned

This project offered practical experience with:

  • Planning and Organizing Code: Outlining structure before diving into code helped with organization.
  • SOLID Principles: Understanding and implementing these principles for cleaner, more maintainable code.
  • Classes and ES6 Modules: Utilizing classes for object-oriented structure and ES6 modules for code organization.
  • Factory Functions: Creating reusable components through factory functions.
  • Prototypal Inheritance: Leveraging JavaScript’s prototype-based inheritance for efficient object manipulation.
  • Local Storage for Data Persistence: Learning basic data persistence methods to keep user data intact.

Demo

Check out the running version of this project here.

About

This project is a part of The Odin Project's advanced JavaScript curriculum. It’s a web application designed to manage tasks across different projects, allowing users to create, save, and organize to-do items in custom or default categories.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published