Capstone Project in Object-Oriented Software Design: Airline Ticket
Tags: softwaredevelopment, java, mongodb, react
Published: 2023-12-06 04:07:41

In our Object-Oriented Software Design class, our team, consisting of Enrique Barrios, Evan Brown, Tong Lin, and myself, embarked on a thrilling journey to develop a full-stack web application named the Airline Ticket Project. This project aimed to streamline the process of searching for available flight tickets and making reservations. Let's dive into the details of our innovative endeavor.

**Overview**
The Airline Ticket Project was conceptualized to provide users with a convenient platform to browse and reserve flight tickets. It offered real-time information on available flights while ensuring a smooth reservation process. Notably, the application had a limitation on ticket availability per flight, allowing customers to reserve tickets until they were sold out. Upon successful reservation, customers received a digital receipt as proof of their booking.

**Technologies Used**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ddt9ablfo6k3fpuk9ok4.jpg)
_Frontend_
React (JavaScript): Our frontend was built using React, providing a seamless and interactive user interface.
Vercel: The frontend was hosted on Vercel, ensuring accessibility and reliability.

_Backend_
Spring Boot Framework (Java): We utilized the Spring Boot Framework in Java for the backend development, facilitating robust and scalable server-side operations.
Render.com: The backend was hosted on Render.com, ensuring efficient server management and deployment.
MongoDB (NoSQL): Our database of choice was MongoDB, offering flexibility and scalability in storing flight information and reservation data.

_Other Tools_
Postman API: We leveraged Postman for testing API endpoints and ensuring smooth communication between frontend and backend.
Project Lombok: This Java library streamlined our development process by reducing boilerplate code.
Dockerfile: Dockerfile was used for containerization, ensuring consistent deployment across different environments.
GitHub: We employed GitHub for version control, allowing seamless collaboration among team members.

**Overcoming Challenges**
CORS Issue
One of the hurdles we encountered was the CORS (Cross-Origin Resource Sharing) issue. This security feature arises when a frontend application hosted on one domain tries to access data from a backend hosted on another domain. Our frontend and backend were hosted separately, leading to CORS issues.

Solution
Upon identifying the CORS issue, we conducted thorough research and found a solution on Stack Overflow. We implemented necessary configurations to resolve the CORS problem, ensuring smooth communication between the frontend and backend components of our application.

**Minimum Viable Product (MVP)**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e27wd3phl2sma618zmn4.png)
Our MVP encompassed essential features to provide users with a functional and user-friendly experience:

Users could search for available flights to their desired destinations.
A comprehensive list of flights, including dates, times, and locations, was displayed for users to select and reserve tickets.
Users could reserve a ticket by entering basic information required for the booking process.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6iu2saf2hdmbzndlq300.png)
**Future Improvements**
Integration of Real Flight Information
Implementing real flight information from flight companies' API endpoints would enhance the application's authenticity and usefulness to users.

Authentication System
Introducing a robust login and sign-up system would provide users with personalized experiences and enable secure access to their reservations.

Enhanced Filtering System
Incorporating a filtering mechanism for flight information would allow users to easily navigate and find flights based on specific criteria, enhancing user experience.

User Review and Rating System
Implementing a user review and rating system for flights would offer valuable insights to potential customers and foster a community-driven platform.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hlkn39vo7zve5gtqe797.png)

Conclusion
Our journey in developing the Airline Ticket Project has been both challenging and rewarding. Through the implementation of various technologies and overcoming obstacles, we have created a functional web application that simplifies the flight ticket reservation process. As we look forward to future improvements and iterations, our goal remains to enhance user experience and provide a seamless platform for booking flight tickets.