Skip to content

A large scale university assignment to design a fully custom flight booking system

Notifications You must be signed in to change notification settings

baconeta/159352-assignment2

Repository files navigation

Web Flight Booking System

Made for 159.352 Advanced Web Development at Massey University June 2022 by Joshua Pearson.

Demo

Run the docker .tar file locally to host the server. The following docker commands will let you load and run the server from the .tar file

  docker load -o 20019455.tar
  docker run -it --rm --publish 5555:8000 20019455

Home page

This page has been merged with the booking page in order to direct a new customer straight to the page where they can search for available flights. There are links across the top of the page for navigation and user management which adapt automatically to the logged in status.

image

Booking page

On this page, a user can find flights matching their filled criteria: image

This data is pulled from the database, validated and sent to the server when the form is submitted.

image

Search results are shown allowing users to see 3 days either side of their selected date making it easier to find a matching flight overall.

Selecting 'Book this flight' takes the user to a confirmation page. Once they click confirm booking, the data is revalidated to ensure the seats have not been sold in the time the user was scrolling. image

And an invoice page will appear once confirmed: image

Example invoice: image

Bonus features

  • A fully designed and functioning user registration and login system, which includes password reset functionality and complete validation
  • Strong flight validation for stopover flights and simple expansion to add more airports, flights and stopover legs
  • Functional from all timezones, no matter where the server is hosted
  • Historical bookings system showing all past bookings
  • The ability for a logged in user to edit their personal info and update their bookings quickly and easily
  • Fully functional HTTPS fucntionality, including protection from cross-site scripting and password leaks with strong hashing authentication
  • A completely systematic migration tool to allow for database model upgrades without losing any data (using alembic)

Tech Stack

  • Python 3.10
  • Bootstrap JS
  • Flask
  • WTForms
  • Flask-Login
  • Bcrypt
  • SQLite with FlaskAlchemy

Docker container

  • Docker version 20.10.14, build a224086
  • Docker Desktop 4.7.1 (77678)

Acknowledgements and references

About

A large scale university assignment to design a fully custom flight booking system

Resources

Stars

Watchers

Forks