cp t-env.json env.json
Fill env.json with your data
pyton manage.py docker
Create compose and Dockerfile
docker compose up --build -d
Starts app
- Django / drf
- Postgresql / redis
- Grafana
- Celery
- Email service works via Celery
- Authorization with JWT
- Full authorization service with verifying and recovering
http://127.0.0.1:8000/api/docs
This API provides:
- User authentication (JWT + session cookies)
- Event CRUD operations
- Event registration system
- Member management
- Password reset & email verification
- Event search functionality
/api/v1/
The API supports two authentication methods:
- JWT Authentication Send token in headers: Authorization: Bearer <access_token>
- Session Authentication Uses Django session cookie: sessionid=
POST /users/register/
Request:
{
"email": "user@example.com",
"name": "John Doe",
"password": "securepass123"
}
POST /users/login/
Request:
{
"email": "user@example.com",
"password": "securepass123"
}
Response:
{
"access": "jwt_access_token",
"refresh": "jwt_refresh_token"
}
POST /users/refresh/
Request:
{
"refresh": "refresh_token"
}
Response:
{
"access": "new_access_token"
}
GET /users/logout/
POST /users/forgot/
Request
{
"email": "user@example.com"
}
POST /users/reset/
Request
{
"email": "user@example.com",
"code": "123456",
"password": "newpassword123"
}
POST /users/verify/
Request
{
"email": "user@example.com",
"code": "123456"
}
GET /events/
POST /events/
Request
{
"title": "Tech Meetup",
"description": "Django conference",
"date": "2026-05-20T18:00:00Z",
"location": "Kyiv"
}
GET /events/{id}/
PUT /events/{id}/
PATCH /events/{id}/
DELETE /events/{id}/
POST /events/{id}/register/
POST /events/{id}/leave/
POST /events/{id}/kick/
Request
{
"user_id": 1
}
GET /events/{id}/members/
POST /events/search/
Request
{
"query": "django",
"organizer_id": 1,
"date_from": "2026-05-01T00:00:00Z",
"date_to": "2026-06-01T00:00:00Z"
}