Skip to content

nelttjen/fastapi-hotels

Repository files navigation

Hotel service

Description

The goal of the project is to provide an interface for user to create bookings of the hotel's free rooms. Also, there's an admin panel to manage all the existing data.


Installation

Technical information

  • General: Python 3.10.6, FastAPI, Docker
  • Databases: PostgreSQL, MongoDB
  • Tests: PyTest
  • Admin panel: sqladmin
  • Authorization: Client-Side JWT Tokens

Requirements

Configuring project

  1. Clone repository:
git clone https://github.com/nelttjen/fastapi-hotels.git
  1. Create .env file by using .env-example template (preferred)
cp -f .env.example .env

or make a new file and fill data manually

touch .env
  1. Build docker containers (docker compose required)
# dev version (Need to run server and migrations manually)
sudo docker compose -f docker-compose.yaml build
# prod version (requires .env-prod file)
cp .env .env-prod
sudo docker compose -f docker-compose-prod.yaml build
  1. Run containers
# dev version
sudo docker compose -f docker-compose.yaml up
# prod version (requires .env-prod file)
sudo docker compose -f docker-compose-prod.yaml up

Development server

In the dev version of docker you need to manually run migrations and server

  1. Create venv, install dependencies
sudo apt install python3-dev python3-venv python3-pip
python3 -m venv venv
source venv/bin/activate
pip3 install poetry
poetry install
  1. run migrations and dev server
poetry run alembic upgrade head
poetry run uvicorn main:app --reload

Releases

No releases published

Packages

 
 
 

Contributors