DEV Community

Cover image for Flight Management System: Angular 9 + Spring Boot + REST APIs
Sanchit Singhal
Sanchit Singhal

Posted on

Flight Management System: Angular 9 + Spring Boot + REST APIs

Abstract

The Flight Management System is a Java-based booking solution for flight tickets. It consolidates data provided by different airline carriers and hence provides the user details and rates in real-time. Travelers may want to make changes in their bookings. The application allows them to book, cancel, view, and update their bookings with ease. Other than this, it eases the management of bookings too. All the bookings, flights, schedules, and routes can be viewed, added, and modified on a single application by the administrator. 

Scope

Inscope: 

Following is the functionality provided by the system:   
There are two categories of people who would access the system: customer and administrator.
Each of these would have some exclusive privileges.   

The customer can:

  • Create his user account. 
  • Login into the application. 
  • Check for available flights. 
  • Make a booking. 
  • View the bookings made. 
  • Cancel or modify a booking.   

The administrator can: 

  • Login into the application. 
  • Add flight, schedule and route details. 
  • View the flight, schedule and route details. 
  • Cancel or modify the flight, schedule and route details.  

Outscope: 

The following functionalities have not been covered under the application:   

  • The application does not cover boarding pass generation and seating plans. 
  • Third-party applications like email & SMS integrations. 
  • Payments are not yet accepted by the application. 

How I built it

Hey, all of you are curious to know how I build this and working with different technologies while working on this Project. First of all this project was running under my leadership. I started working from backend with Spring Boot (Java-based framework) then go with the implementation of REST APIs and Controllers and finally, I built the frontend using Angular with all required validations and all.

Technologies Stack:

Backend:

  • Java
  • Spring Boot
  • REST
  • Microservices
  • JPA

Frontend

  • HTML 5
  • CSS 3
  • Bootstrap 4
  • Angular 9

Apart from this, I used Agile methodology while working on this project and look at the Sprint Backlog on a daily basis. You can find the Sprint and Product Backlog on my Github Profile.

Strategy followed while doing code:

While doing code for the project I tried to make a different branch on git for the different module or you can say that for different components. This made my task easy and I am able to integrate the project effectively and followed the Agile methodology just because while each time I merge the branch into master then the project was in demonstration state to the client. In this way, till the end I used to follow these steps and developing the project.

Link to Code

I know you all are curious to have a look at my code and will give suggestions for my improvement. So here is my GitHub link for the code.
In the attached github url you can find my code for the above mentioned project based on Angular 9 and Spring Boot.

Checkout my Code at GitHub and follow me there for more tech related stuffs:

GitHub logo sanchit2107 / Flight-Management-System

This consists of the Flight Management System using Spring Boot and Angular 9. A complete example of learning Full-stack Development along with implementation

Flight Reservation System

airplane drawing

🌐 Description

The Flight Reservation System is a Java-based solution that allows users to quickly book flights and manage booking information, updates, and cancellations easily. It consolidates data from different airline carriers and thus provides all the necessary details and rates in real-time. In addition, administrators of flight data can also quickly view, create, and update any information about flights, bookings, routes, and schedules.

💻 Technologies

Backend Technologies:

  1. Java 8
  2. Spring Boot
  3. JPA
  4. REST API
  5. JUnit Testing

Frontend Technologies

  1. HTML
  2. CSS
  3. Bootstrap
  4. Typescript
  5. Angular

Database Management

  1. Oracle
  2. H2 Database

ℹ️ Background

How many times have you started dreaming of a new trip, but then the hassle of planning, finding the right flight, and booking it was so frustrating as to make you wonder if the trip was worth it?! Those frustrations end today with the Flight Reservation System's one-stop shop for your tickets!

✈️ Features

The Flight…

Follow me:

I hope you like this post and it will be useful for you during your development phase. If you like this and find any of the useful thing for your part then Please like and share this post and follow me for more updates related to Open Source Contribution.

Thanks
sanchit2107 image

Top comments (10)

Collapse
 
mahlatsem profile image
Mahlatse

Hey Sanchit,

I browsed through your project, I see you are a student or at least at the beginning of your journey, and I think you are starting out very well, in my 12 years experience, i haven't seen many take the steps you have taken to build and learn, Well done on getting started.

Do yourself a favour and keep improving the project as you learn better practices, I would even suggest coming back periodically and looking at the commit history to see improvements you would have made in 6 months, a year or 3 from now.

I always recommend the Clean code book, so please check it out, especially chapter 2.

All the best on your journey

Collapse
 
sanchit2107 profile image
Sanchit Singhal

Thanks @Mahalaste for these kind words and appreciating my work. I keep note down your all suggesting points and will work on that.
Again thanks a lot for this recommendation of the book. I will surely look into it and will be practicing more on projects and improve them.

Regards
Sanchit Singhal
Collapse
 
rangasatyaviswapavan profile image
Rangasatyaviswapavan • Edited

you called these methods
localhost:9092/signup
localhost:9092/authenticate
localhost:9092/getRole?username='+ username
in AuthenticationService file but they are not implemented in spring boot
Please do help me!

Collapse
 
dimakzela profile image
Dimakatso

Hi,

Springboot project is failing to build because i don't have ojdbc8 installed on my machine. Maybe you could've used embbed db or use docker compose configure ojdbc8.

Collapse
 
sanchit2107 profile image
Sanchit Singhal

Hello,

Yes I used the maven framework for building the project structure. You can see the pom.xml file in the root folder of the project structure. In that pom.xml file, there is a dependency of ojdbc which is not provided by the Spring framework and not supported by the maven. As there is no pre-defined oracle dependency like MySQL, MongoDB, and all. So I used to create the custom user-defined dependency of oracle and add it to the pom.xml file.

Steps for creating custom user-defined dependency for oracle:

  1. You have the ojdbc driver .jar file installed of any version (like I am using ojdbc6.jar)
  2. Now copy this .jar file.
  3. Go to the path in your C Drive: C:\Users\username\ .m2\repository\com\oracle\ojdbc6\11.2.0.3
  4. Here 11.2.0.3 indicates the version of ojdbc6.
  5. .m2 folder can be seen after insatlling maven on your system.
  6. Then you can see that there is no .jar file present in this path specified in step-3.
  7. Now you need to paste the driver (ojdbc6.jar file) in this path and rename that file as ojdbc6-11.2.0.3.jar (ojdbc6-version.jar- here version is 11.2.0.3 in my case).
  8. After this you need to add the oracle dependecy in the pom.xml and the force update the project.
  9. Now you are able to build the SpringBoot project without failing.

For any more query please ping here in the comment section.

Thanks

Happy learning

Collapse
 
suvarnaswami profile image
suvarnaswami

Hi Sanchit, I have angular skillset ..and I want to be fullvstack developer I just gone through you project and I am very much thankful to you and I have so many doubts as part of learning , how I can reach you?

Collapse
 
caelinsutch profile image
caelinsutch

Why Java?

Collapse
 
sanchit2107 profile image
Sanchit Singhal

Hello,

First of all, I would like to tell you that I know java very well and learned the frameworks based on Java since the last few months. So I choose Java as a backend. Apart from this many of the big MNCs are still working on Java for building their products and in the current scenario Java is one of the best programming languages worldwide. That's why I choose Spring Boot- a Java-based framework that provides the Layered Architecture.

Thanks

Happy Learning

Collapse
 
suwathika profile image
suwathika

Hy sanchit,
I browsed your project it is very useful for my project. Do you plzz share tha database for this project?

Collapse
 
ask4abid profile image
Muhammad Abid

HI, Sanchit ,
Hopefully you are doing great. could you please share DB of this project ? for further working >

Looking forward,
Abid