Skip to content

flexycode/CTINFMGL_FINAL_PROJECT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

96 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’« CTINFMGL INFORMATION MANAGEMENT

Subject & Section: CTINFMGL - COM231Β Β Β Β Β 

Professor: πŸ‘© Jensen A. SantillanΒ Β Β Β Β Β Β Β Β Β  Β  Β Β Β Β Β Β Β 

No. of Units: 3 Units

Prerequisite: CCDATRCL - Data Structure and AlgorithmΒ Β Β Β Β 

πŸ“Š Table of Contents

🧠 Introduction

A flight booking web application designed to simplify the process of booking flights with the used of modern JavaScript techstacks

🏦 Case Study: Flight Booking App

Overview The Flight Booking App is a web application designed to simplify the process of booking flights for users. The app allows users to search for flights, book tickets, manage their itineraries, and make payments seamlessly. The app also includes an admin panel for managing flights, users, and payments. The goal is to provide a user-friendly, efficient, and secure platform for flight bookings.

✨ Key Features

πŸš€ 1. User Authentication: Users can create accounts, log in, and manage their profiles.

πŸš€ 2. Flight Search: Users can search for flights based on destination, departure time, and other criteria.

πŸš€ 3. Booking Management: Users can book flights, view their bookings, and cancel or modify them.

πŸš€ 4. Payment Integration: Secure payment gateway integration for processing payments.

πŸš€ 5. Admin Panel: Admins can manage flights, users, and payments.

πŸ’» Techstacks

MERN STACK

  • Frontend: React.js (JavaScript framework)
  • Backend: Node.js with Express.js (Node.js framework)
  • Database: MySQL for flexible use of SQL
  • Authentication: JWT (JSON Web Tokens)
  • Payment Gateway: Stripe or PayPal ( Not required!) we use local host authmanagement
  • Email: Brevo API
  • State Management: Redux or Context API
  • Styling: CSS-in-JS (Styled-components) or Tailwind CSS
  • Deployment: Vercel (for Next.js) or Heroku or Dokploy

πŸ•΅οΈ Resources

https://dokploy.com/#pricing)

πŸ’» How to Run this Application

1οΈβƒ£πŸ‘· Install Dependencies

Run npm install to to install node modules Also you direct already to frontend folder and run npm start

npm install

2οΈβƒ£πŸš€ Run React-app

Direct to frontend folder after you install the node modules

cd frontend
npm start

3οΈβƒ£πŸš Run Node.js

Open another terminal in the current codebase to run nodejs for VS Code or other IDE base on what you are using such as Webstorm

cd backend 
node index.js

4️⃣ Connect Database

Connect MySQL dbs through Database repository folder

πŸš€ Screenshot of Project Overview

🌟 Design Overview

🌟 Search Flight

🌟 Background Video

🧊 Database Schema

SQL

See Database folder above

🧊 Data Insertion Example

sql

INSERT INTO `flights` (departure_city, arrival_city, flight_date, duration_hours, base_price, flight_status) VALUES
('New York', 'London', '2024-11-10', 7, 500.00, 'Full'),
('Los Angeles', 'Paris', '2024-11-11', 10, 900.00, 'Available');

INSERT INTO `users` (username, password_hash, role, email, phone_number) VALUES
('akosidogi', '$2b$10$yFTXogxecYrNSRLvFMb.dej4A4snSkHF72ZLItUjwrDFT16tlHCvK', 'admin', 'admin@example.com', '1234567890');

INSERT INTO `carts` (flight_id, user_id) VALUES
(1, 1);

INSERT INTO `seats` (flight_id, seat_number, class, status, seat_price) VALUES
(1, '1A', 'Economy', 'Available', 100.00),
(1, '1B', 'Economy', 'Booked', 100.00);

INSERT INTO `flight_names` (flight_id, region, name) VALUES
(1, 'Europe', 'Transatlantic Express');

🧊 Data Model

Description Coming Soon

🧊 Flow Chart

🧊 Entity Attribute Value Model

Entity Attribute Value Model will be uploaded in this section file after πŸ’₯ Myckle Vince fininish the Normalization

🧊 Normalization

Full Overview of Normalization is in the Folder of documentation

🧊 Entity Relationship Diagram

🧊 Sequence Diagram

🧊 Cloud Architecture

πŸ“ Repository Structure

CTINFMGL_FINAL_PROJECT/
β”‚
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ assets
β”‚   β”œβ”€β”€ Cloud Architecture.png
β”‚   β”œβ”€β”€ ERD Airline Reservation.jpg
β”‚   β”œβ”€β”€ Entity Relationship Diagram - ALA.png
β”‚   β”œβ”€β”€ Entity Relationship Diagram.png
β”‚   β”œβ”€β”€ Flight Booking ERD DRAFT V2.png
β”‚   β”œβ”€β”€ Flight Booking ERD Scratch .jpg
β”‚   β”œβ”€β”€ Flow Chart.png
β”‚   β”œβ”€β”€ Front Page.png
β”‚   β”œβ”€β”€ Prof Jensen Project Consultation.jpg
β”‚   β”œβ”€β”€ Search Flight 2.png
β”‚   β”œβ”€β”€ Search Flight.png
β”‚   β”œβ”€β”€ Sequence Diagram.png
β”‚   β”œβ”€β”€ Table of Content.jpg
β”‚   └── Video Page.png
β”œβ”€β”€ backend
β”‚   β”œβ”€β”€ auth
β”‚   β”‚   β”œβ”€β”€ adminAuth.js
β”‚   β”‚   └── userAuth.js
β”‚   β”œβ”€β”€ config
β”‚   β”‚   β”œβ”€β”€ emailConfig.js
β”‚   β”‚   └── mutlerConfig.js
β”‚   β”œβ”€β”€ controller
β”‚   β”‚   β”œβ”€β”€ cartController.js
β”‚   β”‚   β”œβ”€β”€ chatbotController.js
β”‚   β”‚   β”œβ”€β”€ emailController.js
β”‚   β”‚   β”œβ”€β”€ flightController.js
β”‚   β”‚   β”œβ”€β”€ seatController.js
β”‚   β”‚   └── userController.js
β”‚   β”œβ”€β”€ database
β”‚   β”‚   └── Mysql.js
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ routes
β”‚   β”‚   β”œβ”€β”€ cart.js
β”‚   β”‚   β”œβ”€β”€ chatbot.js
β”‚   β”‚   β”œβ”€β”€ email.js
β”‚   β”‚   β”œβ”€β”€ flights.js
β”‚   β”‚   β”œβ”€β”€ seat.js
β”‚   β”‚   └── user.js
β”‚   β”œβ”€β”€ services
β”‚   β”‚   β”œβ”€β”€ cartService.js
β”‚   β”‚   β”œβ”€β”€ chatbotService.js
β”‚   β”‚   β”œβ”€β”€ emailService.js
β”‚   β”‚   β”œβ”€β”€ flightService.js
β”‚   β”‚   β”œβ”€β”€ seatService.js
β”‚   β”‚   └── userService.js
β”‚   └── views
β”‚       └── index.ejs
β”œβ”€β”€ database
β”‚   β”œβ”€β”€ carts_table.sql
β”‚   β”œβ”€β”€ flight_names.sql
β”‚   β”œβ”€β”€ flights_table.sql
β”‚   β”œβ”€β”€ seats_table.sql
β”‚   └── users_table.sql
β”œβ”€β”€ documentation
β”‚   β”œβ”€β”€ Normalization.pdf
β”‚   └── images
β”‚       β”œβ”€β”€ Normalization SS-1.png
β”‚       β”œβ”€β”€ Normalization SS-2.png
β”‚       └── Normalization SS-3.png
└── frontend
    β”œβ”€β”€ package-lock.json
    β”œβ”€β”€ package.json
    β”œβ”€β”€ public
    β”‚   β”œβ”€β”€ _redirects
    β”‚   β”œβ”€β”€ favicon.ico
    β”‚   β”œβ”€β”€ index.html
    β”‚   β”œβ”€β”€ manifest.json
    β”‚   └── robots.txt
    └── src
        β”œβ”€β”€ App.css
        β”œβ”€β”€ App.js
        β”œβ”€β”€ App.test.js
        β”œβ”€β”€ apicalls
        β”‚   β”œβ”€β”€ emailAPICALL.js
        β”‚   └── seatAPICALL.js
        β”œβ”€β”€ components
        β”‚   β”œβ”€β”€ Admin-Add
        β”‚   β”‚   β”œβ”€β”€ Admin_Add.css
        β”‚   β”‚   └── Admin_Add.jsx
        β”‚   β”œβ”€β”€ Admin_Nav
        β”‚   β”‚   β”œβ”€β”€ Admin_Nav.css
        β”‚   β”‚   └── Admin_Nav.jsx
        β”‚   β”œβ”€β”€ Card
        β”‚   β”‚   β”œβ”€β”€ Card.css
        β”‚   β”‚   └── Card.jsx
        β”‚   β”œβ”€β”€ ChatBot
        β”‚   β”‚   β”œβ”€β”€ Chatbot.css
        β”‚   β”‚   └── Chatbot.jsx
        β”‚   β”œβ”€β”€ Checkout
        β”‚   β”‚   β”œβ”€β”€ Checkout.css
        β”‚   β”‚   └── Checkout.jsx
        β”‚   β”œβ”€β”€ FlightMap
        β”‚   β”‚   β”œβ”€β”€ Flightmap.css
        β”‚   β”‚   └── Flightmap.jsx
        β”‚   β”œβ”€β”€ Footer
        β”‚   β”‚   β”œβ”€β”€ Footer.css
        β”‚   β”‚   └── Footer.jsx
        β”‚   β”œβ”€β”€ ForgotPassword
        β”‚   β”‚   └── ForgotPassword.jsx
        β”‚   β”œβ”€β”€ Nav
        β”‚   β”‚   β”œβ”€β”€ Nav.css
        β”‚   β”‚   └── Nav.jsx
        β”‚   β”œβ”€β”€ Search
        β”‚   β”‚   β”œβ”€β”€ Search.css
        β”‚   β”‚   └── Search.jsx
        β”‚   β”œβ”€β”€ Timeout
        β”‚   β”‚   └── Session_Timeout.jsx
        β”‚   β”œβ”€β”€ Video
        β”‚   β”‚   β”œβ”€β”€ Video.css
        β”‚   β”‚   └── Video.jsx
        β”‚   β”œβ”€β”€ Welcome
        β”‚   β”‚   β”œβ”€β”€ Welcome.css
        β”‚   β”‚   └── Welcome.jsx
        β”‚   └── myFlights
        β”‚       β”œβ”€β”€ MyFlight.css
        β”‚       └── MyFlights.jsx
        β”œβ”€β”€ images
        β”‚   β”œβ”€β”€ berlin.png
        β”‚   β”œβ”€β”€ eye.svg
        β”‚   β”œβ”€β”€ github.svg
        β”‚   β”œβ”€β”€ gmail.svg
        β”‚   β”œβ”€β”€ hawaiiWelcome.jpg
        β”‚   β”œβ”€β”€ linkedin.svg
        β”‚   β”œβ”€β”€ live-chat.svg
        β”‚   β”œβ”€β”€ my-location.svg
        β”‚   β”œβ”€β”€ newyork.png
        β”‚   β”œβ”€β”€ paris.png
        β”‚   β”œβ”€β”€ password.svg
        β”‚   β”œβ”€β”€ philippineTrip - Trim.mp4
        β”‚   β”œβ”€β”€ philippineTrip.mp4
        β”‚   β”œβ”€β”€ philippinesWelcome.jpg
        β”‚   └── x-symbol.svg
        β”œβ”€β”€ index.css
        β”œβ”€β”€ index.js
        β”œβ”€β”€ logo.svg
        β”œβ”€β”€ pages
        β”‚   β”œβ”€β”€ Admin
        β”‚   β”‚   β”œβ”€β”€ Admin.css
        β”‚   β”‚   └── Admin.jsx
        β”‚   β”œβ”€β”€ Cart
        β”‚   β”‚   β”œβ”€β”€ Cart.css
        β”‚   β”‚   └── Cart.jsx
        β”‚   β”œβ”€β”€ Main
        β”‚   β”‚   β”œβ”€β”€ Main.css
        β”‚   β”‚   └── Main.jsx
        β”‚   β”œβ”€β”€ Profile
        β”‚   β”‚   β”œβ”€β”€ Profile.css
        β”‚   β”‚   └── Profile.jsx
        β”‚   β”œβ”€β”€ Register
        β”‚   β”‚   β”œβ”€β”€ Register.css
        β”‚   β”‚   └── Register.jsx
        β”‚   └── SignIn
        β”‚       β”œβ”€β”€ SignIn.css
        β”‚       └── SignIn.jsx
        β”œβ”€β”€ password.svg
        β”œβ”€β”€ reportWebVitals.js
        β”œβ”€β”€ setupTests.js
        └── utilities
            β”œβ”€β”€ ScrollTop.js
            └── scroll.js

πŸ† ContributingΒ Β Β Β 

ContributingΒ Β Β Β Β 

If you would like to contribute to the Flight Booking App, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them.
  4. Push your changes to your forked repository.
  5. Submit a pull request to the main repository.

🧠 Submitting Changes

🧠 Contributions are welcome! If you have ideas for improvements or want to add more exercises, follow these steps:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes and commit them.
  4. Push to your fork and submit a pull request. πŸ’•πŸ’•πŸ’•πŸ’•

πŸ‘‹ Contributors

Special thanks to all my groupmates:

  • 😎 Jay Arre TalosigΒ - Machine Learning Engineer | Blockchain Developer | Bioinformatics Scientist Β Β Β 

  • 🧭 Custer Valencerina - Machine Learning EngineerΒ | Full Stack EngineerΒ | Front-End Developer

  • πŸ’₯ Myckle Vince Natividad - Cybersecurity Forensic Engineer | Cloud Security ArchitectΒ | Cyber Defense Forensic Analyst |Β Cybersecurity Scrum Master

  • 🎲 Angelo Castillo - Network Security EngineerΒ | Machine Learning EngineerΒ | Security Forensic Analyst

  • πŸ€– Neo Flores - Machine Learning Engineer | Network EngineerΒ | DevOps Engineer

  • 🌟 Yeshua Venezuela - Cyber Intelligence SpecialistΒ | Software EngineerΒ | UI / UX Designer | Digital Forensic Analyst

πŸ›Έ FAQ

πŸ›Έ Reporting Issues

Some changes need to be address
- Fix Bug in the Frontend
- Fix Bug in the Backend
- CRUD operation management in SQL Workbench
πŸ€– If you encounter any issues or have suggestions, please open an issue to let us know.

πŸ”‘ LicenseΒ Β Β Β Β 

Coming Soon In the License tab 

National University of Manila LicenseΒ Β Β 

The National University of Manila License grants permission to students of the National University of Manila to use, modify, and distribute this project for educational purposes within the scope of their coursework and assignments.

UsageΒ 

  • You may use this project as a reference or learning material for your studies at the National University of Manila.
  • You may modify the project to suit your educational needs and requirements.
  • You may share the project with your fellow students or instructors for educational purposes.

Restrictions

  • You may not use this project for commercial purposes.
  • You may not redistribute or publish this project outside the National University of Manila without explicit permission.

Disclaimer

This project is provided "as is" without warranty of any kind, express or implied. The National University of Manila and the project contributors disclaim any liability or responsibility for any direct, indirect, incidental, special, exemplary, or consequential damages arising out of the use or misuse of this project.

πŸ”­ AcknowledgementsΒ Β Β Β Β 

✨ Professor

Professor Mrs. Jensen Santillan is a highly respected academic and industry practitioner. Her expertise spans a wide range of areas, including Data Analytics, Data Science, Data Analysis, Data Structures, and Information Management. As a distinguished faculty member at the College of Computing and Information Technology at National University, she shares her knowledge and skills with students.

✨ CCIT Dean

Your dedication to advancing knowledge in this field and your commitment to educating future professionals have been invaluable. Thank you for your guidance, support, and the wealth of information you have shared. Your efforts have greatly enriched this final project and will undoubtedly have a lasting impact on all who engage with this repository.

πŸ“« Changelogs

Chronological list of updates, bug fixes, new features, and other modifications for our Flight Booking Appplication.

πŸ’» [01.1.5] - 2024-01-29Β Β Β Β Β Β 

Role & Project Management

  • πŸ’» Final Project requirements for our project
  • ✨ Create a repository for this Flight Booking App
  • ✨ Brainstorming for our Project requirements
  • ✨ Jay Arre Talosig πŸ’» πŸš€ will be in-charge for Frontend Development & Technology stacks
  • ✨ Jay Arre Talosig 🧠 πŸ”‘ will be in-charge for Backend Development & Entity Relationship Diagram
  • ✨ Custer Valencerina 🧭 🧭 will be in-charge for SQL and debugging for backend, API and documentation
  • ✨ Myckle Vince Natividad πŸ’₯ πŸ’₯ will be also in-charge for SQL, Backend, documentation and Normalization
  • ✨ Angelo Castillo 🎲🎲 will be in-charge for creating Entity Attributes View (EAV)
  • ✨ Neo Flores πŸ€–πŸ€– will be in-charge for creating the overall documentation of the Project
  • ✨ Yeshua Venezuela 🌟🌟 will be in-charge for suggesting a good design in the Frontend User Interface

πŸ’» [01.1.1] - 2024-01-29

Activity

  • ✨ Brainstorming on what database should we use

πŸ’» [01.1.1] - 2024-01-31

Added

  • ✨ Custer Valencerina Uploaded a schematic ERD Diagram from scratch and based on Draw.io

πŸ’» [10.1.1] - 2025-02-01

Activity

πŸ’» [01.1.1] - 2025-02-10

Fix

  • ✨ Jay Arre Talosig Fixed Node modules for Flight Booking Client source codebase

πŸ’» [01.1.2] - 2025-02-12

Fix

Changes

  • ✨ Revise the Entity Attributes View model

πŸ’» [01.1.2] - 2025-02-12

Suggestion

  • ✨ Yeshua Venezuela created a proof-of-concept design for our Front-end UI design.

πŸ’» [01.1.2] - 2025-02-16

Added

  • ✨ Jay Arre Talosig successfully added the FrontEnd (Client) for our Flight Booking

Changes

πŸ’» [01.1.2] - 2025-02-21

Added

πŸ’» [01.1.2] - 2025-02-23

Added

πŸ’» [01.1.2] - 2025-02-24

Added

πŸ’» [01.1.2] - 2025-03-05

Added

πŸ’» [01.1.2] - 2025-03-07

Integration

Commit message for pushing or pull-request

🧊 Flight Booking Application


mystreak

mystreak

Β Β Β Β