project
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data β all from the browser, and deployed in milliseconds.
index.ts
https://greeshma--d3e4d6be380511f08fa79e149126039e.web.val.run
A full-featured Pomodoro technique timer with productivity tracking and analytics.
-
Timer Functionality
- 25-minute work sessions (Pomodoros)
- 5-minute short breaks
- 15-minute long breaks (every 4 Pomodoros)
- Audio notifications
- Visual progress indicators
-
Productivity Tracking
- Log completed Pomodoros
- Track break completion
- Session history with timestamps
- Daily/weekly/monthly statistics
-
Analytics & Charts
- Productivity trends over time
- Daily completion rates
- Weekly patterns
- Monthly summaries
βββ backend/
β βββ database/
β β βββ migrations.ts # Database schema
β β βββ queries.ts # Database operations
β βββ routes/
β β βββ sessions.ts # Session CRUD operations
β β βββ stats.ts # Analytics endpoints
β βββ index.ts # Main Hono server
βββ frontend/
β βββ components/
β β βββ App.tsx # Main application
β β βββ Timer.tsx # Pomodoro timer component
β β βββ Stats.tsx # Statistics dashboard
β β βββ Chart.tsx # Chart components
β βββ index.html # Main HTML template
β βββ index.tsx # Frontend entry point
β βββ style.css # Custom styles
βββ shared/
βββ types.ts # Shared TypeScript types
- Click "Start" to begin a 25-minute Pomodoro session
- Work until the timer completes
- Take a 5-minute break (or 15-minute long break every 4 sessions)
- View your productivity statistics in the Stats tab
- Track your progress over time with interactive charts
- Frontend: React 18.2.0 with TypeScript
- Backend: Hono framework
- Database: SQLite
- Styling: TailwindCSS
- Charts: Chart.js
- Audio: Web Audio API for notifications