Made for 159.352 Advanced Web Development at Massey University June 2022 by Joshua Pearson.
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
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.
On this page, a user can find flights matching their filled criteria:
This data is pulled from the database, validated and sent to the server when the form is submitted.
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.
And an invoice page will appear once confirmed:
- 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)
- 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)
- https://www.craiyon.com/ - AI generated logo design
- https://github.com/sparksuite/simple-html-invoice-template - Invoice template
- https://fontawesome.com/ - Various icons by Font Awesome Free