A modern, intuitive time tracking application designed to help you manage your projects and track your productivity with ease.
- Project Management: Create, edit, and delete projects
- Time Tracking: Start and stop timers for accurate time tracking
- React.js with TypeScript
- Vite (build tool)
- React Router
- Axios for API requests
- RESTful API architecture in GO
- Postgres as database storage
- Node.js (v23 or later)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/TimeTrack.git
cd TimeTrack- Install dependencies:
cd frontend
yarn install- Start the development servers:
Frontend:
yarn startBackend:
cd backendTo build and run the backend using Docker:
# Build service
docker buildx build --target builder .
# Run service in debug mode
docker compose --profile debug up --build- Creating a Project: Use the "Create Project" form to add a new project
- Starting Time Tracking: Click the "Start" button on a project to begin tracking time
- Stopping Time Tracking: Click the "Stop" button on an active project to stop tracking
- Editing a Project: Click the edit icon to modify project details
- Deleting a Project: Click the delete icon to remove a project
TimeTrack/
├── frontend/
│ ├── public/ # Static files
│ └── src/
│ ├── components/ # React components
│ ├── services/ # API services
│ ├── types/ # TypeScript types
│ └── utils/ # Utility functions
│
└── backend/
├── database/ # Database migrations and schemas
├── pkg/
│ ├── projects/ # Project management functionality
│ │ ├── api.go # http request handling
│ │ ├── di.go # dependency injection of layers
│ │ ├── entities.go # entities used in domain
│ │ ├── handler.go # business logic between api and repository
│ │ └── repository.go # storing and reading from database
│ │
│ ├── libraries/ # Shared libraries and utilities
│ └── main.go # Application entry point
│
├── compose.yaml # Docker Compose configuration
└── Dockerfile # Docker build instructions
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GPL-3 License - see the LICENSE file for details.
