A modern timesheet management application built with React, TypeScript, and Supabase.
- 🔐 User Authentication - Secure login, registration, and password reset
- ⏱️ Timesheet Management - Track time entries for different projects and clients
- 📊 Reporting - Generate and export reports with data visualization
- 👥 Project Management - Organize work by clients and projects
- 📈 Data Visualization - Interactive charts powered by Recharts
- 📤 Export Functionality - Export timesheets to Excel format
- Frontend: React 19, TypeScript, Vite
- Backend: Supabase (Authentication & Database)
- UI Components: Custom components with Lucide React icons
- Charts: Recharts
- State Management: React Context API
- Node.js (v18 or higher)
- Bun (or npm/yarn)
- Supabase account
-
Clone the repository
git clone https://github.com/salvatoreiannola72/timetracker.git cd timetracker -
Install dependencies
bun install # or npm install -
Configure environment variables
Create a
.envfile in the root directory with your Supabase credentials:VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Run the development server
bun run dev # or npm run dev -
Open the app
Navigate to
http://localhost:5173in your browser
This application is configured to run on Heroku with dynamic port binding.
-
Install Heroku CLI
Download and install from https://devcenter.heroku.com/articles/heroku-cli
-
Login to Heroku
heroku login
-
Create a new Heroku app
heroku create your-app-name
-
Set environment variables
heroku config:set VITE_SUPABASE_URL=your_supabase_url heroku config:set VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Deploy to Heroku
git push heroku main
-
Open your app
heroku open
The application uses:
- Express server (
server.js) to serve the built React app - Dynamic PORT from Heroku's environment variable
- Procfile to specify the start command
bun run build
# or
npm run buildThe production-ready files will be in the dist folder.
├── components/ # Reusable UI components
├── context/ # React Context for state management
├── lib/ # Utility functions and Supabase client
├── pages/ # Application pages/routes
├── public/ # Static assets
├── supabase/ # Supabase configuration
└── types.ts # TypeScript type definitions
Private project - All rights reserved