My project is a simple to-do list application. The front end is built using React, utilizing the template. The backend is developed with Python, employing FastAPI. The application includes the following features:
- Users can create multiple lists by specifying the list name. Each list can contain different items (tasks), with each item having a title, priority (high, medium, low, or none), and due date.
- Accessing the item list of a specific list is achieved by navigating to the list of lists and then clicking on the desired list's name.
- Items can be marked as done by checking their respective checkboxes.
- Filtering options are available within each list based on priority and item status (done or not yet).
- The project contains a dashboard with 4 KPIs:
- Total number of items (both done and not yet done).
- Number of items not done.
- Number of items with a due date and not done.
- Number of items with high priority and not done.
I tried writing clean and understandable code throughout the project, ensuring readability. I'm looking forward to your feedback!
Clone the project
git clone https://github.com/othmane099/todo_app.git
Set up virtual environment
python3 -m venv .venv
source .venv/bin/activate
Install requirements
pip install -r requirements.txt
Set up db_url in main.py
register_tortoise(
app,
db_url='mysql://root:password@localhost/todo_db',
modules={"models": ["models"]},
generate_schemas=True,
add_exception_handlers=True
)
Run the server
python -m uvicorn main:app --reload
Recommended Node.js v18.x.
Install Packages
yarn install
Start server
yarn dev