Video Demo: https://www.youtube.com/watch?v=OV5t65nP_Qg
This is a Flask-based web application designed to help users manage their time and tasks. The application allows users to add, update, and track timers, tasks, and events. It also provides a progress tracking feature for tasks.
- User registration and login
- Timer management
- Task management
- Event management
- Progress tracking for tasks
- Calendar view for events
-
Clone the repository
git clone https://github.com/yourusername/your-repo.git cd your-repo
-
Set up a virtual environment
python3 -m venv venv source venv/bin/activate
-
Install the dependencies
pip install -r requirements.txt
-
Set up the database
flask db upgrade
-
Run the application
flask run
The application uses SQLite as its database. The database file is data.db
. If you want to change the database, you can modify the SQL
configuration in the application.
- Register: Create a new account by providing a username and password.
- Login: Log in using your username and password.
- Logout: Log out of the application.
- Add Timer: Add a new timer with a title, hours, and minutes.
- Update Timer: Update the hours and minutes of an existing timer.
- View Timers: View all timers associated with your account.
- Add Task: Add a new task with a title, description, start time, end time, hours, and minutes.
- Update Task: Update the details of an existing task.
- Delete Task: Delete an existing task.
- View Tasks: View all tasks associated with your account.
- Add Event: Add a new event with a title, description, start time, and end time.
- Update Event: Update the details of an existing event.
- Delete Event: Delete an existing event.
- View Events: View all events associated with your account.
- Track Progress: The application calculates and displays the progress of each task based on the hours and minutes left.
/
: Home page with options to add timer, event, or task./login
: Login page./logout
: Logout route./register
: Registration page./clock
: View all timers./add_timer
: Add a new timer./update_timer
: Update an existing timer (AJAX)./add_task
: Add a new task./update_task/<int:task_id>
: Update an existing task./delete_task/<int:task_id>
: Delete an existing task./add_event
: Add a new event./update_event/<int:event_id>
: Update an existing event./delete_event/<int:event_id>
: Delete an existing event./progress_tracker
: View progress of all tasks./calendar
: View all events in a calendar format.
- usd: A custom Jinja filter to format numbers as USD currency.
- apology: Render an apology message.
- login_required: Decorator to require login for certain routes.
- lookup: Lookup function (placeholder).
- usd: Format numbers as USD currency.
- days_to_date: Convert days to date format.
Contributions are welcome! Please fork the repository and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
This project uses the following libraries:
- Flask
- Flask-Session
- CS50 Library
- Werkzeug
- Jinja2
Feel free to reach out if you have any questions or suggestions!
Happy coding! 😊