Skip to content

πŸš€A comprehensive, mobile-first ToDo List app with user authentication, list management, task creation, due dates, and productivity dashboard. Built using React, .NET, SQL Server, and WebSockets. Features responsive design, real-time updates, and secure user data management.

License

Notifications You must be signed in to change notification settings

realYushi/todo-list

Repository files navigation

Logo

ToDo List Application

A comprehensive, full-stack ToDo List application designed with a mobile-first approach.
Explore the docs Β»

View Demo Β· Report Bug Β· Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

This repository contains the code for a comprehensive, full-stack ToDo List application. It's designed with a mobile-first approach, ensuring a seamless experience across all platforms. Users can register and log in with their unique username and password, allowing them to access their data from any device. The app offers robust user authentication, including the ability to update passwords.

demo.mp4

Key features of the ToDo List app include:

  • List Management: Users can create, update, and organize lists, which serve as group units for tasks. Each list has a title and an optional description.
  • Task Creation: Within each list, users can create tasks with customizable titles and descriptions.
  • Due Date Functionality: Tasks can have optional due dates. When a due date passes, the task automatically enters an overdue status.
  • Flexible Task Management: Users can modify task titles, descriptions, and due dates, or remove due dates entirely.
  • Dashboard: A comprehensive dashboard provides an overview of the user's productivity, displaying total task count, completed tasks, pending tasks, and overdue items.
    Feature Desktop Mobile
    Theme Desktop Theme Mobile Theme
    List Management Desktop List Management Mobile List Management
    Task Management Desktop Task Management Mobile Task Management
    Dashboard Desktop Dashboard Mobile Dashboard
    User Authentication Desktop User Authentication Mobile User Authentication
    Password Management Desktop Password Management Mobile Password Management
    Responsive Design Responsive Design

This application showcases modern web development practices, incorporating React, .NET, SQL, and WebSockets. It's being developed using test-driven development (TDD) methodologies, and is fully containerized using Docker.

(back to top)

Built With

  • React
  • React Router
  • .NET
  • SQL Server
  • Docker
  • TypeScript
  • Redux
  • RTK Query
  • Tailwind
  • DaisyUI
  • Azure

(back to top)

Getting Started

The ToDo List application is live and ready to use! You can access it directly at:

https://todo.yushi91.com

Simply visit the URL to start using the application. You can create an account, log in, and begin managing your tasks right away.(Due to the cost of the server, the database may need 30 seconds to wake up)

Prerequisites

For developers interested in running the project locally:

  • Git
  • Docker

Installation

  1. Clone the repo

    git clone https://github.com/realYushi/todo-list.git
  2. Navigate to the project directory

    cd todo-list
  3. Copy the .env.example file to .env

    cp .env.example .env
  1. Edit the .env file and replace the placeholder values with your actual configuration.

    Note: If you don't set up a .env file or don't define all variables, the project will use the default values specified in the docker-compose.yml file.

  2. Run the application using Docker Compose
    make run
  3. Access the application in your browser(start with HTTPS)
    https://localhost
  1. Accessing localhost with HTTPS:

    • Use Google Chrome or Microsoft Edge to access the website.

    • For Chrome:

      1. Enter chrome://flags/#allow-insecure-localhost in the address bar.
      2. Enable the "Allow invalid certificates for resources loaded from localhost" option.
    • For Edge:

      1. Enter edge://flags/#allow-insecure-localhost in the address bar.
      2. Enable the "Allow invalid certificates for resources loaded from localhost" option.
    • Restart your browser for the changes to take effect.

      This step is necessary because the development server uses a self-signed certificate, which browsers typically flag as insecure. Allow Insecure Localhost

(back to top)

Usage

Use this space to show useful examples of how the project can be used. Additional screenshots, code examples and demos work well in this space.

(back to top)

Roadmap

  • User Authentication
  • List Management
  • Task Creation and Management
  • Dashboard
  • Asynchronous Updates
  • OAuth2.0 Integration
  • Notifications
  • Tags
  • Search
  • AI Integration
  • Collaboration Features

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Since this is a personal project, contributing is currently not open. However, any feedback or suggestions are welcome. Please feel free to reach out to me.

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Yushi Cui - realYushi@gmail.com

Project Link: https://github.com/realYushi/todo-list

Blog: https://blog.yushi91.com

LinkedIn: https://www.linkedin.com/in/yushi-cui-6043aa285/

(back to top)

About

πŸš€A comprehensive, mobile-first ToDo List app with user authentication, list management, task creation, due dates, and productivity dashboard. Built using React, .NET, SQL Server, and WebSockets. Features responsive design, real-time updates, and secure user data management.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published