A web-based tourism marketplace platform that connects tourists with local guides, tour packages, and unique travel experiences.
TripMesh helps tourists discover personalized travel services while allowing local guides to showcase and manage their offerings.
TripMesh is a Tourist-as-a-Service marketplace where users can:
- Explore destinations and tour packages
- Find and connect with local guides
- Book personalized travel experiences
- Manage tourist and guide profiles
- Share reviews and ratings
The platform focuses on creating a trusted connection between tourists and local service providers.
The following diagram represents the planned navigation flow, user roles, and major features of TripMesh.
Features:
- Register and login
- Browse tour packages
- Search destinations
- View guide profiles
- Book tours
- Give reviews and ratings
- Manage profile
Features:
- Register as a guide
- Manage guide profile
- Create tour packages
- Manage booking requests
- Receive tourist reviews
TripMesh/
โโโ frontend/ # React frontend
โโโ backend/ # Laravel backend
โโโ docs/ # Documentation
โโโ README.md
- React.js
- Vite
- Tailwind CSS
- Laravel
- PHP
- MySQL
- Git & GitHub
- VS Code
- Postman
Backend is developed using Laravel and located inside the backend folder.
- PHP 8.2+
- Composer
- MySQL
- Laravel
Navigate to backend folder:
cd backendInstall dependencies:
composer installCreate environment file:
cp .env.example .envGenerate application key:
php artisan key:generateConfigure database information in .env.
Run migrations:
php artisan migrateStart Laravel server:
php artisan serve- Users
- Roles
- Tourist Profiles
- Guide Profiles
- Tour Packages
- Destinations
- Categories
- Bookings
- Payments
- Reviews
- Ratings
- Favorites
-
One Role has many Users
-
One User belongs to one Role
-
One User can have one Tourist Profile
-
One User can have one Guide Profile
-
One Guide can create many Tour Packages
-
One Destination has many Tour Packages
-
One Category contains many Tour Packages
-
One Tourist can create many Bookings
-
One Tour Package can have many Bookings
-
One Tourist can write many Reviews
-
One Package can receive many Reviews
| Method | Route |
|---|---|
| POST | /api/register |
| POST | /api/login |
| POST | /api/logout |
| GET | /api/profile |
| Method | Route |
|---|---|
| GET | /api/guides |
| POST | /api/guides |
| GET | /api/guides/{id} |
| PUT | /api/guides/{id} |
| DELETE | /api/guides/{id} |
| Method | Route |
|---|---|
| GET | /api/packages |
| POST | /api/packages |
| GET | /api/packages/{id} |
| PUT | /api/packages/{id} |
| DELETE | /api/packages/{id} |
| Method | Route |
|---|---|
| GET | /api/bookings |
| POST | /api/bookings |
| GET | /api/bookings/{id} |
| PUT | /api/bookings/{id} |
| Method | Route |
|---|---|
| GET | /api/reviews |
| POST | /api/reviews |
| DELETE | /api/reviews/{id} |
Planned Laravel migrations:
- create_roles_table
- create_users_table
- create_tourist_profiles_table
- create_guide_profiles_table
- create_destinations_table
- create_categories_table
- create_tour_packages_table
- create_bookings_table
- create_payments_table
- create_reviews_table
- create_favorites_table
Run migrations:
php artisan migrate:fresh- Real-time chat between tourists and guides
- Online payment system
- AI-based travel recommendations
- Location-based guide matching
- Mobile application support
- Create a feature branch
git checkout -b feature/your-feature-name- Commit changes
git commit -m "Add feature"- Push branch
git push origin feature/your-feature-name- Create a Pull Request
This project is developed for academic purposes.