As a traveler myself, I struggled to keep track of all my expenses in long trips. I wanted a simple app to set a budget, keep track of expenses and provide small analytics to correct the trajectory while travelling.
Tracktrip is a comprehensive travel budget management application with the following key features:
- Expense tracking: Record and categorize travel expenses with detailed information
- Budget management: Set and monitor budgets for different expense categories
- Multi-user collaboration: Create trips and invite friends to manage expenses together
- Real-time analytics: Get instant insights into your spending patterns
- Location-based expenses: Track expenses by location/place
- Mobile-friendly UI: Responsive design optimized for mobile devices
- Offline-first: Works offline (read-only) thanks to intensive caching
Tracktrip is built using modern web technologies:
- React 19 with TypeScript
- TanStack Router for client-side routing
- TanStack Query for data fetching and caching
- tRPC for type-safe API communication
- Tailwind CSS for utility-first styling
- Radix UI for accessible components
- Recharts for data visualization
- PWA capabilities for mobile installation
- Bun JavaScript runtime
- tRPC for API endpoints
- Drizzle ORM for database interactions
- PostgreSQL for relational data storage
- Better Auth for authentication
- Resend for transactional emails
Tracktrip implements secure authentication with:
- Email/Password: Traditional email and password login
- Google OAuth: Social login via Google
- Bun JavaScript runtime
- PostgreSQL database
- Node.js for development tools
-
Install dependencies:
bun install
-
Set up environment variables: Create a
.envfile with required variables:GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret RESEND_API_KEY=your_resend_api_key
-
Run database migrations:
bun run migrate
-
Start development server:
bun run dev
bun run dev: Start development serverbun run build: Build production assetsbun run start: Start production serverbun run migrate: Run database migrationsbun run lint: Run ESLintbun run typecheck: Run TypeScript checks
Tracktrip uses Docker for deployment with GitHub Actions for CI/CD.
-
Build Docker image:
docker build -t tracktrip . -
Run with Docker Compose:
docker compose up -d
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch
- Implement your changes with tests
- Submit a pull request
- Follow existing code patterns and naming conventions
- Use TypeScript for type safety
- Write clear commit messages
- Keep components focused and reusable
This project is licensed under the MIT License. See the LICENSE file for details.
For support, please open an issue on GitHub or contact the maintainers.