TravelMingle is a collaborative travel itinerary platform with a Django REST API backend and a React Native (Expo) frontend. Users can create, manage, and share travel itineraries, invite collaborators, and upload essential travel documents.
- User Authentication: Register, login (with username or email), update profile, change password, and delete account.
- Itinerary Management: Create, update, delete, and view itineraries with multiple days and activities.
- Collaboration: Invite other users as collaborators to itineraries.
- Document Upload: Upload and manage travel documents (passport, visa, flight, insurance) per itinerary.
- Mobile App: Cross-platform mobile app for managing trips on the go.
- Media Support: User avatars and document uploads.
- JWT Authentication: Secure API access using JSON Web Tokens.
- Backend: Django, Django REST Framework
- Frontend: React Native (Expo), Axios, React Navigation, Expo Secure Store, Google Maps integration
-
Install dependencies
Navigate to thebackenddirectory and install requirements:pip install -r requirements.txt
-
Run migrations
python manage.py migrate
-
Create a superuser (optional)
python manage.py createsuperuser
-
Start the server
python manage.py runserver
-
API Endpoints
- User:
/api/user/ - Itinerary:
/api/itinerary/ - Auth:
/api/user/token/(JWT)
See
backend/itinerary/urls.pyandbackend/user/urls.pyfor full endpoint details. - User:
-
Install dependencies
Navigate to thefrontenddirectory and run:npm install
-
Start the Expo app
npx expo start
-
Configure environment variables
- Set
API_URLandGOOGLE_MAP_API_KEYin a.envfile (seefrontend/app.config.js).
- Set
-
Development
- Edit files in the
frontend/appdirectory. - Uses file-based routing via Expo Router.
- Edit files in the
- User: Custom user model with avatar, email, first/last name.
- Itinerary: Title, description, start/end dates, owner.
- Collaborator: Many-to-one with Itinerary and User.
- ItineraryDay: Linked to Itinerary, has title and date.
- Activity: Linked to ItineraryDay, includes time, title, location.
- Document: Linked to Itinerary and User, supports file upload.
- Backend:
python manage.py test