Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kaschenkkko/referralsysapi
Referral system API built with FastAPI. The API provides functionality for handling referral codes and ensuring users can only have one active code at a time.
https://github.com/kaschenkkko/referralsysapi
api fastapi python referral-system
Last synced: 30 days ago
JSON representation
Referral system API built with FastAPI. The API provides functionality for handling referral codes and ensuring users can only have one active code at a time.
- Host: GitHub
- URL: https://github.com/kaschenkkko/referralsysapi
- Owner: kaschenkkko
- Created: 2024-11-13T12:45:24.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-11-22T06:26:12.000Z (about 1 month ago)
- Last Synced: 2024-11-22T07:23:58.888Z (about 1 month ago)
- Topics: api, fastapi, python, referral-system
- Language: Python
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
RefSystem API
# Документация API
RefSystem - [API redoc](https://kaschenkkko.github.io/ReferralSysAPI/)# Техническое задание проекта:
Необходимо разработать простой RESTful API сервис для реферальной системы.
# Функциональные требования:
- Регистрация и аутентификация пользователя (JWT, Oauth 2.0).
- Аутентифицированный пользователь должен иметь возможность создать или удалить свой реферальный код.Одновременно может быть активен только 1 код. При создании кода обязательно должен быть задан его срок годности.
- Возможность получения реферального кода по email адресу реферера.
- Возможность регистрации по реферальному коду в качестве реферала.
- Получение информации о рефералах по id реферера.
- UI документация (Swagger/ReDoc).# Запуск проекта:
- Клонируйте репозиторий.
- Перейдите в папку **infra** и создайте в ней файл **.env** с переменными окружения:
```
DB_HOST=db
DB_PORT=5432
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
JWT_SECRET_KEY=secret_key
```
- Из папки **infra** запустите docker-compose:
```
~$ docker-compose up -d --build
```
- В контейнере **backend** выполните миграции:
```
~$ docker-compose exec backend alembic upgrade head
```Документация к API будет доступна по url-адресу [localhost:8000/redoc](http://localhost:8000/redoc)
Админка будет доступна по url-адресу [localhost:8000/admin](http://localhost:8000/admin)