Travel Agency management system made as a project on our college's final year. The goal was to build a full-stack web application that enables agency employees to perform CRUD operations with offers provided by agency itself, and application guests to reserve a trip for any offer that is available. Application is built with Laravel, React and Tailwind CSS, and also has Dockerfiles provided in Docker branch.
Application should be prepopulated with 60000 offers, out of which 50000 are available, and 10000 are past due. This is implemented by using Faker library and custom created providers. You can access the application as employee or guest. Employees have two roles: Admin & Staff, and their permitted actions depend on the role.
- If you choose to 'login as guest', you only have access to the offers, and you can book a trip for any of the offers available. Offer cards have their availability displayed in the top-right corner. You can also search for offers on a certain continent, country and city, choose a way of transport, or filter the offers by departure or/and arrival time.
- When you login as Staff member, through login form on homepage, you can also see and search offers, but you can also add a new offer to the database, or update or delete an existing offer. You can also view your profile information, and update it if needed.
- Admin members also have all these permissions above, and apart from that, they can also add new Staff members, see the list of all reservations and accept each one of them.
Screenshots of the application. Home screen display, with Login and Guest buttons in navigation.
Login form for Agency employees.
Offers page, with search and pagination.
Single offer display, with detailed data and pictures carousel, and update & delete buttons for employees.
Form for entering new offer data by employees.
Guest display with a 'reserve' button.
Reservation form for guests.
Users display on admin page.
Reservations display for admin.
Profile update page for employees.
- Download source code from this branch and extract it somewhere on your machine.
- Start Apache and MySQL ports in your WAMP/XAMPP Control Panel.
- Enter command prompt, change directory to the project path (cd /project_path).
- Run 'php artisan migrate:fresh --seed' command, wait for the data to generate.
- Run 'php artisan serve' command.
- Enter another command prompt, change directory to the frontend folder of this project (cd /project_path/frontend).
- Run 'npm run dev' command.
- Open displayed address, after Local:
- Semantic HTML5 markup
- Flexbox
- CSS Grid
- Laravel - PHP Framework
- React - JS library
- Tailwind CSS - Utility-first CSS Framework
- Docker - Containerization platform
- React Toastify
- React + Laravel Full Stack application - This helped us for the crucial part of the project: integrating Laravel on the backend with React on the frontend.
- Dockerize Laravel-Vite and React app - This is an amazing article which helped us to better understand Dockerization process of Laravel-Vite and React applications. I'd recommend it to anyone still learning this concept.
-
Veljko Jelenković
-
Lazar Joksimović
-
Jovan Živadinović
- GitHub - https://github.com/jovanzivadinovic
-
Veljko Stefanović