A full-stack application for tracking time and managing tasks with Google Calendar integration.
timetracking/
├── backend/ # Backend Node.js application
│ ├── src/ # Source code
│ ├── Dockerfile # Backend Docker configuration
│ └── package.json # Backend dependencies
├── frontend/ # React frontend application
│ ├── src/ # Source code
│ ├── Dockerfile # Frontend Docker configuration
│ └── package.json # Frontend dependencies
└── docker-compose.yml # Docker compose configuration
- Docker and Docker Compose
- Node.js 18+
- Copy
.env.exampleto.envand fill in the required values - Make sure you have the correct Google OAuth credentials set up for both development and production
We provide a convenient shell script run.sh to manage different environments:
# Start development environment (default)
./run.sh up
# Start production environment
./run.sh up prod
# View logs (development)
./run.sh logs
# View production logs
./run.sh logs prod
# Stop development environment
./run.sh down
# Restart development environment
./run.sh restartAvailable commands:
up: Start the containersdown: Stop the containersrestart: Restart the containerslogs: Show container logs
Available environments:
dev: Development environment (default)- Hot-reloading enabled
- Source code mounted into containers
- Development OAuth credentials
- Local MongoDB access
prod: Production environment- Optimized builds
- Production OAuth credentials
- Secured MongoDB
- Frontend runs on
http://localhost:3001 - Backend API on
http://localhost:3000 - MongoDB on port
27017(development only) - Hot-reloading for both frontend and backend
- TypeScript compilation on the fly
- Google Calendar Integration
- Project Tag Filtering
- Time Duration Tracking
- MongoDB Storage
GET /api/events: Get calendar eventsGET /api/events/tags: Get all project tagsGET /auth/google: Initiate Google OAuth flowGET /auth/google/callback: Google OAuth callback
- backend: Node.js API server
- frontend: React frontend application
- mongodb: MongoDB database
MIT