Skip to content

[CS50x] A Flask-powered Pomodoro web app with session and database management, AI integration, user authentication and customizable timers, and productivity tracking.

License

Notifications You must be signed in to change notification settings

haolamnm/pomodoro-50

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pomodoro 50

Screenshot of the Pomodoro 50 app home page

BuyMeACoffee PayPal Ko-Fi GitHub Sponsor

First of all, This is my project for CS50x 2024.

Welcome to Pomodoro 50! A Flask web application that helps you manage your study session. The difference between Pomodoro 50 and other Pomodoro timers is that Pomodoro 50 is a 50-minute timer, not a 25-minute timer. Yes, you read that right! I found that 25 minutes is too short for me to focus on my work, so I decided to make a 50-minute timer instead.

But that's not all! The key feature of Pomodoro 50 is that it has an AI assistant that will motivate you when you intentionally pause your work session for bad reasons.

In conclusion, with Pomodoro 50, you can:

  • Start your study session.
  • Have your to-do list.
  • Have your own account that will track your progress throughout the year.
  • Have an AI assistant that will motivate you when you intentionally pause for bad reasons.

Getting Started

1. Online access

You can access the website at Pomodoro 50.

2. Local setup

  1. Folk the repository.

  2. Clone the repository.

git clone https://github.com/haolamnm/CS50x-project.git
  1. Install the required packages.
pip install -r requirements.txt
  1. Set the environment variables.

Create a .env file in the root directory. Take a look at the .env.example here file for the required environment variables.

  1. Run the application.

Connect to the local session system

python dev.py

Connect to the Redis cache session system

python run.py

How to use

Start by create your own account via the register page. The UI is pretty straightforward, so you should be able to navigate through the website easily.

Inspiration

I was inspired by the actual Pomodoro I used to study which is Pomofocus. It was a great tool, but it offers a premium feature which shows the statistics of your study session. I thought it would be a great idea to make my own version. Besides, I also learned about AI and thought it would be cool to have a mini AI assistant that motivates you when you pause your work session for some kind of bad reason.

Technical Stack

  1. Python: I used Python 3.13 for this project. Python.
  2. Flask: For routing and backend. Flask.
  3. PostgreSQL: I used Supabase as the database, Supabase.
  4. Redis: I used Redis to store the session data, Upstash.
  5. Vercel: I used Vercel to deploy the website, Vercel.
  6. Pytest: I wrote lots of unit tests for this project.
  7. Gemini: I used Gemini for the AI assistant, Gemini.

For Developers

If you want to contribute to this project, feel free to fork the repository and make a pull request. I would love to see your contribution!

Email: [email protected].

GitHub: @haolamnm.

LinkedIn: @haolamnm.


About

[CS50x] A Flask-powered Pomodoro web app with session and database management, AI integration, user authentication and customizable timers, and productivity tracking.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published