- โก FastAPI for the Python backend API.
- โ๏ธ SQLAlchemy for the Python SQL database interactions (ORM).
- ๐ Pydantic, used by FastAPI, for the data validation and settings management.
- ๐พ PostgreSQL as the SQL database.
- ๐ Docker Compose for development and production.
- ๐ฆ Poetry for Python dependencies management
- ๐ Secure password hashing by default.
- ๐ JWT (JSON Web Token) authentication.
- โ Tests with Pytest.
First of all take a look at .env.example
, this file contains examples of all env varariables that are required for this project. Create .env
file in the root folder and fill it with your own varables. At this point you can follow one of this guides:
Clone the repository:
git clone https://github.com/S1riyS/CodeTogether.git
Then download and install Poetry in order to install python dependencies with the following comand:
poetry install --with dev
Note
Commands above will install dev
dependencies as well
Make sure that Postgres
is running, so that you can apply migrations:
alembic upgrade head
At this point everything is set up and you can start the FastAPI server:
cd src/
uvicorn main:app --reload --workers 1 --host 0.0.0.0 --port 8080
Autogenerated documentation will be avaliable here
Simply run
docker compose up -d --build
Application will be running on localhost:9999
Tests are located in /tests
diretlory.
Use the following comand to start them:
poetry run pytest
Note
At the moment testing is supported only if you use local development
- Major features:
- Authorization and authentication
- Core logic
- Profiles
- Search filters
- Email notifications
- Testing
- Linting
- Logging
- CI/CD
- Automatically deploy docs to GitHub Pages
- Deployment