- core - contain core django settings
- users - contain user model for admin/receptionist/customers
- hotels - contain functionality for hotel management
The application is not customer centric, it is receptionist centric. So, the customer is not going to register himself before coming to hotel and it would also be complex for receptionist to first create customer and then link it to booking table. We can do automatic linking of customer details to user model for future use but that is currently unnecessary to the requirements.
Due to above fact, also assuming that 1 customer would book 1 room. If a customer books multiple room in current db design then we are going to need customer data in user model to prevent redundancy in booking table.
####Things that could have been done better with more time
- CSS
- Validation on user submitted data. As of now, it is assumed that user will enter correct data.
- Docker implementation. Although I have previously done docker implementation for similar project: https://github.com/Waterbyte/dockerizedLoanSystem
- Edit Room and Edit Room Type
- Multiple images for hotel
- Code grouping in separate files.
####Reproduction steps:
- Create virtualenv
- pip install -r requirements.txt
- py manage.py migrate
- py manage.py loaddata fixture.json
- py manage.py runserver
- Password for admin and receptionist can be found in notes