Django REST API is used as project backend. It handles all the requests from the frontend and communicates with the database and external APIs like oauth2.
- Python 3.9
- Create a virtual environment and activate it
- Install the requirements with
pip install -r requirements.txt
- Run the migrations with
python manage.py migrate
- Create Django Super User with
python manage.py createsuperuser
- Run the server with
python manage.py runserver
python.exe -m black **/*.py --line-length 120
Warning: This list is not complete!
-
/api/user/login/
- Login user with username and password -
/api/user/logout/
- Logout user with token -
/api/user/register/
- Register user with username, email and password and optional other fields -
/api/user
- Get personal details with token -
/api/user?username=<username>
- Get user details by username, admin only -
/api/user/update/
- Update user details with optional fields and token -
/api/area/
- Get all areas -
/api/area?area=<name>
- Get area by name -
/api/area/create/
- Create area with name and optional fields, admin only -
/api/area/update?area=<name>
- Update area by name, admin only -
/api/area/delete?area=<name>
- Delete area by name, admin only -
/api/area/cabin/
- Get all cabins -
/api/area/cabin?cabin=<name>
- Get cabin by name -
/api/area/cabin/create/
- Create cabin with name and optional fields, auth required -
/api/area/cabin/update?cabin=<name>
- Update cabin by name, owner and admin only -
/api/area/cabin/delete?cabin=<name>
- Delete cabin by name, owner and admin only -
/api/area/service/
- Get all services -
/api/area/service?service=<name>
- Get service by name -
/api/area/service/create/
- Create service with name and optional fields, admin only -
/api/area/service/update?service=<name>
- Update service by name, admin only -
/api/area/service/delete?service=<name>
- Delete service by name, admin only -
/api/reservation/
- Get all reservations, customer and owner can get only their own reservations, admin can get all -
/api/reservation?reservation=<id>
- Get reservation by id, access: customer and owner (limited), admin (all) -
/api/reservation/create/
- Create reservation, auth required -
/api/reservation/update?reservation=<id>
- Update reservation by id, admin only -
/api/reservation/delete?reservation=<id>
- Delete reservation by id, admin only -
/api/reservation/confirm?reservation=<id>
- Confirm reservation by id, admin only -
/api/reservation/cancel?reservation=<id>
- Cancel reservation by id -
/api/invoice/
- Get all invoices, customer and owner can get only their own invoices, admin can get all -
/api/invoice?invoice=<id>
- Get invoice by id, access: customer and owner (limited), admin (all) -
/api/invoice/create/
- Create invoice, auth required -
/api/invoice/update?invoice=<id>
- Update invoice by id, admin only -
/api/invoice/delete?invoice=<id>
- Delete invoice by id, admin only
To run the tests, run python manage.py test
.
Additionally, you can only run specific test with python manage.py test <collection>
This project is licensed under the GNU GPLv3 License - see the LICENSE file for details.