Align is a comprehensive travel planner application designed to streamline group trip organization. It helps users create itineraries, manage tasks, split costs, and discover activities, all in one collaborative platform.
- Daksh Shah (Product Owner/Lead)
- Max Carr
- Anthony Tonini
- Atharva Tawde
- Ian Yam
- Trip Management: Create and organize trips with detailed itineraries.
- Collaborative Planning: Invite friends to join your trip and plan together.
- AI Activity Suggestions: Get personalized activity recommendations powered by Google Gemini.
- Interactive Maps: Visualize your trip itinerary and activities on a map.
- Task Management: Assign tasks to trip members to ensure everything gets done.
- User Accounts: Secure sign-up, login, and password reset functionality via email.
- Framework: Next.js (React)
- Styling: Tailwind CSS
- Maps: Leaflet / React-Leaflet
- UI Components: Radix UI
- Framework: FastAPI (Python)
- Package Manager: UV
- AI Integration: Google Gemini (for activity suggestions)
- Database: PostgreSQL
Before running the project, ensure you have the following installed:
- Python (>= 3.12)
- Node.js & npm
- UV (Python package manager)
- Docker & Docker Compose
Follow these steps to get the application running locally.
Create a .env file in the root directory by copying the template:
cp .env-template .envFill in the required environment variables in the .env file, including database credentials, API keys (Google Gemini, Resend), and JWT settings.
Run the following command in the root directory to start the PostgreSQL database:
docker compose up -dNavigate to the backend folder and install dependencies:
cd backend
uv syncStart the backend server:
uv run uvicorn main:app --reloadThe backend API will be available at http://localhost:8000.
Navigate to the frontend folder and install dependencies:
cd frontend
npm installStart the development server:
npm run devThe application will be available at http://localhost:3000.