Find Your Flow. Own Your Time.
A smart Pomodoro productivity app with user authentication and persistent data.
Built by Team Gear β Pranay Tanpure (Lead), Vipin Rathod, Tushar Supekar, Kartik Rokade, Virdhaval Sawant
antarman/
βββ backend/
β βββ server.js # Express app entry point
β βββ package.json
β βββ .env.example # Copy to .env and set JWT_SECRET
β βββ routes/
β β βββ auth.js # POST /api/auth/register, /login
β β βββ user.js # Profile, tasks, stats, settings
β βββ middleware/
β β βββ authMiddleware.js # JWT verification
β βββ utils/
β β βββ fileStore.js # JSON file read/write helpers
β βββ data/
β βββ users.json # Flat-file database (auto-created)
β
βββ frontend/
βββ index.html # Login / Register page
βββ app.html # Main Pomodoro app (auth-protected)
βββ css/
β βββ auth.css
β βββ app.css
βββ js/
βββ auth.js # Login/register API calls
βββ app.js # Timer, tasks, stats, settings
# 1. Create your .env file
copy backend\.env.example backend\.env
# Edit backend/.env β set: JWT_SECRET=some_long_random_string
# 2. Install dependencies
npm run install
# 3. Start everything
npm startOpen http://localhost:5000 β frontend and API both served from one process.
For auto-reload during development:
npm run dev
data/users.jsonis created automatically on first registration β no database setup needed.
| Method | Route | Auth | Description |
|---|---|---|---|
| POST | /api/auth/register |
β | Register new user |
| POST | /api/auth/login |
β | Login, returns JWT |
| GET | /api/user/profile |
β | Get profile + settings + tasks |
| PUT | /api/user/settings |
β | Update timer settings |
| GET | /api/user/tasks |
β | List tasks |
| POST | /api/user/tasks |
β | Add task |
| PATCH | /api/user/tasks/:id |
β | Toggle complete / edit |
| DELETE | /api/user/tasks/:id |
β | Delete task |
| POST | /api/user/session |
β | Log completed focus session |
| GET | /api/user/stats |
β | Get stats + daily log |
All protected routes require: Authorization: Bearer <token>
- π JWT authentication with bcrypt password hashing
- β± Pomodoro timer β Focus / Short Break / Long Break
- π Animated SVG countdown ring
- β Task manager with per-user persistence
- π Daily + all-time stats
- β Configurable durations, auto-start, sound toggle
- π Browser notifications + Web Audio API chime
- πΎ All data stored in
data/users.jsonβ no database required