Skip to content

karamlk/travel-agency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Travel Agency Management System

Full-stack travel agency platform — Laravel REST API backend with React admin dashboard


Overview

A full-stack travel agency management system built with Laravel (API backend) and React (admin dashboard). Allows travel agencies to manage travels, tours, and bookings with role-based access control, analytics, and email notifications.


Architecture

Backend: RESTful API with role-based access (Admin/Customer) using Laravel Sanctum. UUID-based resource identification for all entities prevents sequential ID enumeration.

Frontend: React admin dashboard with Context API state management, axios interceptors for token handling, and protected routes. Real-time toast notifications via React Toastify.


Features

Admin Dashboard

  • Travel and tour management (create, view, edit, delete)
  • Booking management — view and confirm customer bookings
  • Refund management — view, update, and track refund requests
  • Analytics — top countries, top customers, refund reasons, sales summary
  • Dashboard overview with key metrics

Customer API

  • Browse travels and tours
  • Book and cancel tours
  • Request refunds
  • Rate tours

General

  • Role-based access control (Admin vs Customer)
  • Email notifications for bookings, cancellations, and refunds via Mailtrap

Tech Stack

Layer Technology
Backend Laravel 11
Database MySQL, Eloquent ORM
Auth Laravel Sanctum
Email Mailtrap
Frontend React, React Router DOM
Styling TailwindCSS
HTTP Axios
Notifications React Toastify
Icons Lucide-react
API Testing Postman

Installation

1. Clone

git clone https://github.com/karamlk/travel-agency.git
cd travel-agency

Backend Setup

composer install
cp .env.example .env

Edit .env with your database credentials:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
php artisan key:generate
php artisan migrate --seed
php artisan serve

Frontend Setup

npm install
npm run dev
  • Backend API: http://localhost:8000
  • Frontend Dashboard: http://localhost:5173

Login using the default admin credentials from the seeder (see DatabaseSeeder.php).


Preview

Login Page

Login Page

Dashboard Overview

Dashboard Overview

Travels Management

Travels Page

Bookings Management

Bookings Page


API Documentation

Import the Postman collection included in the repository:

backend/postman/Travel-Agency.postman_collection.json

All protected endpoints require:

Authorization: Bearer {token}

About

A full-stack travel agency management system powered by Laravel and React. This platform enables agencies to manage travels, tours, bookings, and refunds with role-based access, real-time notifications, and analytics. Customers can browse, book, rate, and request refunds through a secure API-driven experience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors