Skip to content
 
 

Repository files navigation

To-Do App

Welcome to the To-Do App, your personal task management tool! This app helps you stay organized by allowing you to register, log in, reset your password, manage your tasks and delete account. It’s a simple, user-friendly application that allows you to track and organize your daily tasks.

Features

  • Registration and Login: Users can register an account and log in to access their personal task list.
  • Password Reset: Users can reset their password if they forget it, using their email and the browser's local storage.
  • Task Management: Add, edit, delete, and update the status of your tasks.
  • Task Status: Tasks can be marked as "complete" or "incomplete".
  • Local Storage: All data is saved using the browser's localStorage, ensuring persistence between sessions.
  • Delete Account: Account deleted will be permanently deleted on localStorage.

How to Use

  1. Welcome Page: Upon visiting the app, you will be greeted with the welcome page. Here, you can either Register or Login to get started.

  2. Register:

    • To create an account, click on the Register button and enter your name, email, and password.
    • If your email is already registered, the app will alert you that the user already exists.
  3. Login:

    • Once registered, you can log in by entering your email and password.
    • If login is successful, you will be redirected to the task management page.
  4. Manage Tasks:

    • Add New Task: After logging in, you can add new tasks by clicking the Add New Task button and filling out the task name and description.
    • Task Actions: For each task, you can:
      • Edit: Update the task name and description.
      • Update Status: Toggle the status between "completed" and "incomplete".
      • Delete: Remove a task from the list.
  5. Logout:

    • When you're finished, you can log out and return to the login screen.
  6. Password Reset

    • If you forget your password, you can reset it via the Forgot Password link on the login page. You will be able to reset your password through local storage (without a backend service)
  7. Delete Account:

    • You can delete your account, and it will also be removed from localStorage.

From Class Diagrams to Code with All Creational Patternsn

🧠 Language Choice: Python 3.x

Why Python?

  • ✅ Simple and readable syntax
  • ✅ Supports OOP principles (Inheritance, Polymorphism, Encapsulation)
  • ✅ Rich standard library and mature testing ecosystem (unittest, pytest)
  • ✅ Ideal for quick prototyping and scalable design pattern implementation

📐 UML Class Diagram Summary

Key classes and their responsibilities:

  • User, Admin: Manage accounts, authentication, and task interactions
  • Task, TaskManager: Handle task creation, update, and status toggling
  • AuthSystem: Central authentication manager using Singleton
  • Storage: Shared utility class for persistence simulation
  • Notification: Represents system-generated messages to users
  • Account: Represents lifecycle-tied user account

🏗️ Creational Design Patterns Used

Pattern Use Case in Project Reason
Simple Factory TaskFactory creates different task types Centralizes object creation logic
Factory Method NotificationFactory with subclasses for Email/SMS Lets subclasses decide which class to instantiate
Abstract Factory GUIFactory creates OS-specific UI components Creates families of related objects without specifying concrete classes
Builder UserBuilder for flexible User creation Constructs complex objects with optional attributes
Prototype Task clone method Useful for copying task templates efficiently
Singleton AuthSystem instance shared across app Ensures a single global instance for authentication

Links

🧩 Add "Features for Contribution" Table

## Features for Contribution

| Feature                          | Status  | Type             |
|----------------------------------|---------|------------------|
| Dark Mode Toggle                 | Planned | Feature Request  |
| Task Categories & Filters        | Planned | Feature Request  |
| Google Sign-In Integration       | Planned | Feature Request  |
| Add Hover Effects to Buttons     | Open    | Good First Issue |
| Refactor `app.js`                | Open    | Good First Issue |
| Unit Test for Login Function     | Open    | Good First Issue |
| Mobile Responsiveness Fix        | Open    | Good First Issue |


## Getting Started

### Prerequisites

- Node.js (v14+ recommended)
- npm
- Web browser (Chrome, Firefox, etc.)

### Steps to Run Locally

1. Clone or download the repository:
   
   git clone https://github.com/Gogi2016/ToDoApp.git


### Tests

npm install
npm install --save-dev jest
 
 run the test npm test

### Go live 
[To-Do App](https://gogi2016.github.io/ToDoApp/)

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages