A comprehensive flight management platform for tour operators, artists, and travel coordinators to streamline flight bookings, passenger management, and tour logistics.
- Multi-Artist Support: Manage multiple artists and their tours
- Tour & Event Tracking: Separate workflows for tours and standalone events
- Personnel Management: Track tour personnel with roles and VIP status
- Document Management: Store and version itineraries, invoices, and travel documents
- Navitas Integration: Parse flight information from Navitas text blocks
- Option Management: Create, compare, and recommend flight options
- Split Itineraries: Handle complex multi-segment flights
- Hold Management: 24-hour flight holds with automatic expiry tracking
- Group & Individual Bookings: Flexible passenger assignment options
- Client Portal (
/c): Artists view their tours and make selections - Employee Portal (
/a): Agents and admins manage all operations - Secure Authentication: Supabase Auth with role-based permissions
- Responsive Design: Desktop-first with mobile compatibility
- Dark Mode Support: Built-in theme switching
- Real-time Updates: Live notifications and status updates
- Intuitive Navigation: Clean, professional interface
- Next.js 15 with App Router
- TypeScript for type safety
- Tailwind CSS for styling
- shadcn/ui component library
- React Query for data fetching
- Supabase for database and authentication
- PostgreSQL with Row-Level Security (RLS)
- Server Actions for mutations
- Edge Functions ready for custom logic
π 15 Tables:
βββ users (auth integration)
βββ artists & artist_assignments
βββ projects (tours/events)
βββ legs (flight segments)
βββ tour_personnel (passengers)
βββ leg_passengers (assignments)
βββ options & option_components
βββ selections & holds
βββ pnrs & documents
βββ chat_messages & notifications
- Node.js 18+
- npm or yarn
- Supabase account
# Clone the repository
git clone https://github.com/elodge/flights-v3.git
cd flights-v3
# Install dependencies
npm install
# Environment setup
cp .env.example .env.local# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Optional: Testing
E2E_CLIENT_EMAIL=test_client@example.com
E2E_CLIENT_PASSWORD=password123
E2E_AGENT_EMAIL=test_agent@example.com
E2E_AGENT_PASSWORD=password123# Apply database migrations
npm run db:migrate
# Seed sample data
npm run db:seed
# Generate TypeScript types
npm run db:types# Start development server
npm run dev
# Run tests
npm test
# Run E2E tests
npm run test:e2e
# Build for production
npm run build- Login at
/loginwith your credentials - Client Users: Redirected to
/cto view tours and make selections - Employees: Redirected to
/ato manage all operations
- Dashboard (
/a): View all tours grouped by artist - Tour Management (
/a/tour/[id]):- View legs, personnel, and documents
- Add/remove tour personnel
- Leg Management (
/a/tour/[id]/leg/[legId]):- Assign passengers to flights
- Parse Navitas text to create options
- Set holds and manage bookings
- Dashboard (
/c): View assigned tours and projects - Project View (
/c/project/[id]): See flight legs and options - Leg Details (
/c/project/[id]/legs/[legId]): Make flight selections
- Unit Tests: Core business logic and utilities
- Integration Tests: Component interactions and data flow
- E2E Tests: Complete user workflows
- RLS Tests: Database security validation
# All tests
npm test
# Unit tests only
npm run test:unit
# Integration tests
npm run test:integration
# E2E tests
npm run test:e2e
# Watch mode
npm run test:watch- Database Setup: Schema and migration guide
- Sample Data Guide: Test data and seeding
- Testing Guide: Comprehensive testing documentation
- Seeding Instructions: Data setup procedures
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prod- Connect your Supabase project
- Set environment variables in deployment platform
- Configure domain and SSL
- Apply migrations to production database
- Set up RLS policies
- Configure authentication providers
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
- TypeScript: Strict type checking enabled
- ESLint: Airbnb configuration with custom rules
- Prettier: Code formatting on save
- Conventional Commits: Semantic commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the docs folder for detailed guides
- Issues: Report bugs via GitHub Issues
- Discussions: Ask questions in GitHub Discussions
- Repository: https://github.com/elodge/flights-v3
- Issues: https://github.com/elodge/flights-v3/issues
Built with β€οΈ for the entertainment industry
Streamlining tour logistics, one flight at a time.