Referral System - это Django приложение, позволяющее реализовать систему реферальных ссылок и аутентификации по номеру телефона с использованием одноразовых кодов подтверждения.
netesovdiplom/
├── netesovdiplom/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│ ├── asgi.py
├── users/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── serializers.py
│ ├── urls.py
│ ├── utils.py
│ ├── views.py
│ ├── tests.py
├── frontend/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── forms.py
│ ├── urls.py
│ ├── views.py
│ ├── tests.py
├── .env
├── .env.docker
├── manage.py
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── README.md
- app/: Основное приложение с моделями, сериализаторами и API.
- referral_system/: Конфигурация проекта Django.
- Dockerfile: Описание образа для контейнера.
- docker-compose.yml: Настройка сервисов для контейнеризации.
- requirements.txt: Список зависимостей.
- Python 3.10+
- Docker и Docker Compose
-
Клонируйте репозиторий:
git clone <URL_репозитория> cd referral_system
-
Установите зависимости (если запускаете локально):
pip install -r requirements.txt
-
Запустите проект с помощью Docker:
docker-compose up --build
-
Приложение будет доступно по адресу:
http://localhost:8000
http://localhost:8000
POST /auth/phone/
Описание: Отправляет одноразовый код подтверждения на указанный номер телефона.
Тело запроса:
{
"phone": "<номер_телефона>"
}
Ответ:
- Успех:
{ "message": "Code sent successfully" }
- Ошибка:
{ "error": "Phone number is required" }
POST /auth/code/
Описание: Проверяет одноразовый код и создаёт пользователя, если его не существует. ВАЖНО! Телефон лучше указывать без + начиная с цифры 7, например (79991112233)
Тело запроса:
{
"phone": "<номер_телефона>",
"code": "<код>"
}
Ответ:
- Успех:
{ "message": "User created", "invite_code": "<реферальный_код>" }
- Ошибка:
{ "error": "Invalid code" }
GET /profile/?phone=<номер_телефона>
Описание: Получает данные пользователя и список приглашённых.
Ответ:
- Успех:
{ "phone": "<номер_телефона>", "invite_code": "<реферальный_код>", "invited_users": ["<номер_телефона>", ...] }
- Ошибка:
{ "error": "User not found" }
POST /profile/
Описание: Активирует реферальный код для пользователя.
Тело запроса:
{
"phone": "<номер_телефона>",
"invite_code": "<реферальный_код>"
}
Ответ:
- Успех:
{ "message": "Referral activated" }
- Ошибка:
{ "error": "Invalid phone or invite code" }
- Установите Postman.
- Импортируйте коллекцию Postman из репозитория.
- Выполните тестовые запросы к API.
-
Сборка контейнера:
docker-compose build
-
Запуск контейнеров:
docker-compose up
-
Остановка контейнеров:
docker-compose down