Part of Open University TM470 Final IT Project
Python application using Flask framework.
- Python 3.11
- pip
- pipenv
$ python --version
Python 3.11.6
https://packaging.python.org/en/latest/guides/installing-using-linux-tools/
$ sudo dnf install python3-pip python3-wheel
$ pip --version
pip 22.2.2
https://pipenv.pypa.io/en/latest/index.html
$ pip install pipenv --user
$ pipenv --version
pipenv, version 2023.12.1
Create and activate the virtual environment and spawn a shell within it
pipenv shell
Install packages
pipenv install [OPTIONS] [PACKAGES]...
$ pipenv install Flask
The application builds upon steps from tutorial https://flask.palletsprojects.com/en/3.0.x/tutorial/
$ flask --app reservation_system init-db
$ flask --app reservation_system dummy-data
$ flask --app reservation_system run --debug
If flask runs successfully, you should be able to click the link in terminal:
* Running on http://127.0.0.1:5000
Log in to the system as username 'admin' with password 'dev'.
$ coverage run -m pytest
$ coverage report
This then works with Coverage Gutters VS Code extension to view coverage in module's python files.
$ coverage xml
Admin dashboard views are styled with AdminLTE (https://adminlte.io/)
- Arrivals / Departures
- Recent bookings
- Revenue summary
- Calendar month view
- Only allow future bookings
- Prevent bookings overlapping dates or "double bookings" for same dates
- Add special offers/discount rates
- Photo uploads
- Amenities list
- Add new guest details at booking time (currently a guest must be created before creating a reservation)
- Allow multiple rooms per booking
- Calulate full booking price
- Print invoice
- Print revenue report
- Create new users
- Update/delete users
- Different permission levels?
- Refactor row query functions
- Would type hints help?
- Write tests