Tripify is an innovative mobile application that revolutionizes the road trip experience by creating personalized music playlists based on the user's current emotional state and their destination.
Frontend: React Native with Expo Backend: FastAPI (Python) Database: MongoDB Atlas
Before running this project, make sure you have the following installed:
- Python 3.11 or higher
- Node.js and npm
- MongoDB Atlas account (free tier)
git clone <repository-url>
cd Tripifycd backend
pip install -r requirements.txtCreate a .env file in the backend directory with the following content:
MONGODB_URL=mongodb+srv://username:password@cluster.mongodb.net/?appName=Cluster0
DATABASE_NAME=tripify
PORT=8000
Replace username, password, and the cluster URL with your MongoDB Atlas credentials.
- Go to https://www.mongodb.com/cloud/atlas/register and create a free account
- Create a new cluster (M0 Free tier)
- Under "Database Access", create a database user with username and password
- Under "Network Access", add
0.0.0.0/0to allow access from anywhere (for development) - Get your connection string by clicking "Connect" on your cluster and choosing "Drivers"
- Update the
.envfile with your connection string
cd TripifyApp
npm installYou need to run both the backend and frontend simultaneously in separate terminal windows.
cd backend
uvicorn src.main:app --reload --port 8000You should see:
Successfully connected to MongoDB!
Application startup complete.
The backend API will be running at http://127.0.0.1:8000
cd TripifyApp
npm startAfter the Expo development server starts, press w to open the app in your web browser.
Alternatively:
- Press
ito open in iOS Simulator (macOS only) - Press
ato open in Android Emulator - Scan the QR code with the Expo Go app on your phone
Tripify/
├── backend/
│ ├── src/
│ │ ├── main.py # FastAPI application entry point
│ │ ├── routes.py # API routes for authentication
│ │ ├── models.py # Pydantic models
│ │ └── database.py # MongoDB connection
│ ├── requirements.txt # Python dependencies
│ └── .env # Environment variables (not in git)
└── TripifyApp/
├── app/ # React Native app screens
├── assets/ # Images and static files
├── package.json # Node dependencies
└── index.ts # App entry point
POST /api/auth/signup- Create a new user accountPOST /api/auth/login- Login with email and passwordGET /api/auth/users/{email}- Get user information by email