Skip to content

Latest commit

ย 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

TripSync

AI-Powered Group Travel Planning Made Simple

TripSync transforms the chaos of group trip planning into a seamless, collaborative experience. Plan trips together, vote on activities, split expenses, and let AI handle the heavy lifting.

TypeScript React Node.js License


โœจ Key Features

๐Ÿค– AI-Powered Planning

  • Instant Itinerary Generation - Create complete day-by-day trip plans in seconds with Claude Sonnet 4.5
  • Atlas AI Assistant - Your personal travel advisor with contextual trip knowledge
  • Smart Recommendations - Budget optimization, packing lists, and conflict resolution
  • Email Parsing - Automatically extract booking details from confirmation emails

๐Ÿ‘ฅ Collaborative Tools

  • Democratic Voting - Vote on activities, dates, and destinations as a group
  • Real-Time Chat - Discuss plans with trip members instantly
  • Role-Based Permissions - Organizers, planners, and members with appropriate access
  • Trip Invitations - Easy invite system via email or share links

๐Ÿ’ฐ Expense Management

  • Smart Expense Splitting - Automatically calculate who owes what
  • Multiple Split Methods - Equal split, percentage-based, or custom amounts
  • Receipt Tracking - Upload and attach receipts to expenses
  • Settlement Tracking - Mark expenses as settled when paid

๐Ÿ“ฑ Modern Experience

  • Progressive Web App - Install on any device, works offline
  • Push Notifications - Stay updated on trip changes and votes
  • Mobile-First Design - Beautiful UI that works perfectly on any screen
  • Dark Mode - Easy on the eyes, day or night

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 20+
  • PostgreSQL 16+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/AbdulMuheeth29/TripSync.git
cd TripSync

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Edit .env with your configuration

# Run database migrations
npm run db:migrate

# Start development server
npm run dev

Visit http://localhost:3000 and start planning your next adventure! ๐ŸŽ‰


๐Ÿ—๏ธ Tech Stack

Frontend

  • React 19 - Modern UI library
  • TypeScript - Type-safe development
  • Vite - Lightning-fast build tool
  • TailwindCSS - Utility-first styling
  • Radix UI - Accessible component primitives
  • Wouter - Lightweight routing

Backend

  • Node.js & Express - Fast, unopinionated server
  • TypeScript - End-to-end type safety
  • PostgreSQL - Robust relational database
  • Drizzle ORM - Type-safe database toolkit
  • Redis - High-performance caching

AI & Services

  • Anthropic Claude Sonnet 4.5 - Advanced language model
  • Stripe - Payment processing & subscriptions
  • Cloudflare R2 / AWS S3 - File storage
  • Sentry - Error tracking & monitoring
  • SendGrid / SMTP - Transactional emails

DevOps

  • Docker & Docker Compose - Containerization
  • GitHub Actions - CI/CD pipeline
  • Nginx - Reverse proxy & load balancing

๐Ÿ“ฆ Project Structure

TripSync/
โ”œโ”€โ”€ client/                 # React frontend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/    # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ pages/         # Route pages
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/         # Custom React hooks
โ”‚   โ”‚   โ””โ”€โ”€ lib/           # Utilities & helpers
โ”‚   โ””โ”€โ”€ public/            # Static assets
โ”œโ”€โ”€ server/                 # Express backend
โ”‚   โ”œโ”€โ”€ routes.ts          # API route definitions
โ”‚   โ”œโ”€โ”€ ai-service.ts      # AI integration layer
โ”‚   โ”œโ”€โ”€ storage.ts         # Data access layer
โ”‚   โ””โ”€โ”€ ...                # Other services
โ”œโ”€โ”€ shared/                 # Shared types & schemas
โ”œโ”€โ”€ migrations/             # Database migrations
โ”œโ”€โ”€ tests/                  # Test suites
โ”œโ”€โ”€ scripts/                # Utility scripts
โ””โ”€โ”€ docs/                   # Documentation (local only)

๐Ÿ”ง Development

Available Scripts

# Development
npm run dev              # Start dev server with hot reload
npm run build            # Build for production
npm start                # Start production server

# Database
npm run db:generate      # Generate new migration
npm run db:migrate       # Run migrations
npm run db:push          # Push schema changes (dev only)

# Testing
npm test                 # Run all tests
npm run test:watch       # Run tests in watch mode
npm run test:coverage    # Generate coverage report

# Code Quality
npm run check            # TypeScript type checking
npm run lint             # Lint code with ESLint
npm run format           # Format code with Prettier

# Services
npm run test:services    # Test production services
npm run test:email       # Test email configuration

Environment Variables

Create a .env file with the following required variables:

# Database (Required)
DATABASE_URL=postgresql://user:password@localhost:5432/tripsync

# Authentication (Required)
JWT_SECRET=your-super-secret-jwt-key-min-32-chars

# Email (Required for password reset & invites)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
SMTP_FROM=noreply@yourdomain.com

# AI Features (Optional - enables AI trip generation)
AI_INTEGRATIONS_ANTHROPIC_API_KEY=sk-ant-...

# Redis Cache (Optional but recommended)
REDIS_URL=redis://localhost:6379

# File Storage (Optional - enables photo/document uploads)
R2_ACCOUNT_ID=your-cloudflare-account-id
R2_ACCESS_KEY_ID=your-r2-access-key
R2_SECRET_ACCESS_KEY=your-r2-secret-key
R2_BUCKET_NAME=tripsync-uploads

# Monitoring (Optional)
SENTRY_DSN=https://...@sentry.io/...

# Billing (Optional - enables paid tiers)
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...

See .env.example for complete configuration options.


๐Ÿณ Docker Deployment

Development

docker-compose up -d

Production

# Interactive setup
./scripts/setup-production-services.sh

# Deploy
./deploy.sh

# Or manually
docker-compose -f docker-compose.prod.yml up -d

๐Ÿงช Testing

TripSync includes comprehensive test coverage:

# Run all tests
npm test

# Run specific test suites
npm test auth           # Authentication tests
npm test storage        # Database tests
npm test middleware     # Middleware tests

# Generate coverage report
npm run test:coverage

Current Test Stats:

  • โœ… 89 tests passing
  • โœ… Zero TypeScript errors
  • โœ… End-to-end API tests
  • โœ… Integration tests

๐Ÿ“Š Features by Tier

Feature Free Pro Teams
Trips per user 3 Unlimited Unlimited
Members per trip 8 25 Unlimited
AI Generations 10/month 100/month Unlimited
Photo storage 100MB 10GB 50GB
Document uploads โŒ โœ… โœ…
Email parsing โŒ โœ… โœ…
Priority support โŒ โŒ โœ…
Custom branding โŒ โŒ โœ…

๐Ÿ”’ Security

TripSync takes security seriously:

  • โœ… HTTPS Only - All traffic encrypted with TLS
  • โœ… Secure Authentication - JWT tokens with bcrypt password hashing
  • โœ… Rate Limiting - Protection against brute force attacks
  • โœ… SQL Injection Protection - Parameterized queries via Drizzle ORM
  • โœ… XSS Protection - React's built-in escaping + CSP headers
  • โœ… CSRF Protection - SameSite cookies
  • โœ… Security Headers - HSTS, X-Frame-Options, X-Content-Type-Options
  • โœ… Data Encryption - Sensitive data filtered from logs and error tracking
  • โœ… Regular Updates - Automated dependency updates via Dependabot

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests (npm test)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Guidelines

  • Write TypeScript with strict type checking
  • Follow existing code style (enforced by ESLint & Prettier)
  • Add tests for new features
  • Update documentation as needed
  • Keep commits atomic and meaningful

๐Ÿ“ API Documentation

Authentication

POST / api / auth / register;
POST / api / auth / login;
POST / api / auth / logout;
POST / api / auth / password - reset - request;
POST / api / auth / password - reset - submit;

Trips

GET    /api/trips                    # List user's trips
POST   /api/trips                    # Create new trip
GET    /api/trips/:id                # Get trip details
PATCH  /api/trips/:id                # Update trip
DELETE /api/trips/:id                # Delete trip
POST   /api/trips/:id/generate       # AI generate itinerary

Itinerary

GET    /api/trips/:id/items          # List itinerary items
POST   /api/trips/:id/items          # Add itinerary item
PATCH  /api/items/:id                # Update item
DELETE /api/items/:id                # Delete item
POST   /api/items/:id/vote           # Vote on item

Expenses

GET    /api/trips/:id/expenses       # List expenses
POST   /api/trips/:id/expenses       # Add expense
PATCH  /api/expenses/:id             # Update expense
DELETE /api/expenses/:id             # Delete expense

See full API documentation in /docs (local only).


๐ŸŽจ Screenshots

Coming soon - UI screenshots will be added here


๐Ÿ—บ๏ธ Roadmap

โœ… Completed

  • Core trip planning functionality
  • AI-powered itinerary generation
  • Real-time collaboration
  • Expense splitting
  • PWA support
  • Stripe integration
  • Email notifications
  • Photo & document uploads

๐Ÿšง In Progress

  • Mobile apps (iOS & Android)
  • Flight price tracking
  • Hotel booking integration
  • Weather forecasts
  • Calendar sync (Google, Apple)

๐Ÿ”ฎ Planned

  • Trip templates & inspiration
  • Social sharing & public trips
  • Travel insurance integration
  • Multi-language support
  • Visa requirement checker
  • Currency converter

๐Ÿ’ก Use Cases

Family Vacations

Plan your next family trip with everyone's input. Vote on activities, manage budgets, and keep everyone on the same page.

Friend Getaways

Coordinate weekend trips or extended vacations with friends. Split costs fairly and never miss a detail.

Corporate Retreats

Organize team-building trips with professional tools. Track expenses, manage large groups, and ensure smooth logistics.

Bachelor/Bachelorette Parties

Plan the perfect celebration. Handle complex itineraries, coordinate group activities, and split costs seamlessly.


๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments


๐Ÿ“ง Support


๐ŸŒŸ Star History

If you find TripSync useful, please consider giving it a star! โญ


Made with TypeScript, React, and Claude AI
Happy travels! โœˆ๏ธ๐ŸŒ

About

AI-powered group travel planning platform. Generate complete itineraries in 60 seconds, collaborate democratically, split expenses fairly. Built with TypeScript, React, Node.js, and Claude Sonnet 4.5.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages