API мини CRM приложеение
- Описание
- Технологии
- Таблица эндпоинтов
- Шаблон заполнения .env-файла
- Запуск проекта на локальной машине
- Автор
MiniCRM — это backend-сервис для управления клиентами, сделками и комментариями, реализованный на FastAPI с асинхронной работой через PostgreSQL.
Проект ориентирован на практическую разработку API с авторизацией, ролями пользователей и правами доступа.
REST API для управления:
- Клиентами (CRUD)
- Сделками (CRUD, статусы, фильтрация по менеджерам)
- Комментариями к сделкам
- Пользователями с ролями (admin / manager)
- Авторизацией через JWT
Приложение написано с использованием асинхронного FastAPI, SQLAlchemy, PostgreSQL и FastAPI Users.
Авторизация
| Метод | URL | Описание | Доступ |
|---|---|---|---|
| POST | /auth/register | Регистрация новых менеджеров | Админ |
| POST | /auth/jwt/login | получение JWT токена | Админ Менеджер |
Пользователи
| Метод | URL | Описание | Доступ |
|---|---|---|---|
| GET | /users/all | Список всеех менеджеров | Админ |
| GET | /users/{user_id}/clients | Получение списка клиентов менеджра по id | Админ |
| GET | /users/me | Получение текущего юзера | Админ Менеджер |
| PATCH | /users/{id} | Редактирование юзера | Админ |
| DELETE | /users/{id} | Удаление юзера | Админ |
Клиенты
| Метод | URL | Описание | Доступ |
|---|---|---|---|
| GET | /clients/all | Список всех клиентов (Админ видит всех, менеджер - своих) |
Админ Менеджер |
| GET | /clients/{clients_id} | Получение клиента по id | Админ Менеджер |
| PATCH | /clients/{clients_id} | Редактирование клиента | Админ Менеджер |
| DELETE | /clients/{clients_id} | Удаление клиентв | Админ |
| POST | /clients | Добавление нового клиента | Админ Менеджер |
Сделки
| Метод | URL | Описание | Доступ |
|---|---|---|---|
| GET | /deals/all | Список всех сделок (Админ видит вс своих) |
Админ Менеджер |
| GET | /deals/{deals_id} | Получение сделки по id | Админ Менеджер |
| PATCH | /deals/{deals_id} | Редактирование сделки | Админ Менеджер |
| DELETE | /deals/{deals_id} | Удаление сделки | Админ |
| POST | /deals | Добавление новой сделки | Админ Менеджер |
Комментарии
| Метод | URL | Описание | Доступ |
|---|---|---|---|
| GET | /comments/{deal_id}/comments | Получить все комментарии сделки | Админ Менеджер |
| POST | /comments/{deal_id}/comments | Добавление комментария к сделке | Админ Менеджер |
| PATCH | /comments/{deal_id}/comments/{comment_id} | Редактирование комментария | Админ Менеджер |
| DELETE | /comments/{deal_id}/comments/{comment_id} | Удаление комментария | Админ |
env.exampleс дефолтнными значениями расположен в корневой папке
POSTGRES_DB = minicrmdb # Имя базы дданнных
POSTGRES_USER = postgres # Имя юзера PostgreSQL
POSTGRES_PASSWORD = yourpassword # Пароль юзера PostgreSQL
DATABASE_URL = postgresql+asyncpg://postgres:yourpassword@db:5432/minicrmdb # Указываем адрес БД
DEBUG = False # Включеение/Выключение режима отладки
APP_TITLE = МиниCRM приложение # Название приложения
SECRET = SUPERSECRETKEY # Секретный ключ для подписания JWT токенов
FIRST_SUPERUSER_USERNAME = superadmin # Указываеем usernsme для суперюзера
FIRST_SUPERUSER_EMAIL = superadmin@mail.com # Указываеем почту для суперюзера
FIRST_SUPERUSER_PASSWORD = superadmin # Указываеем пароль для суперюзера
FIRST_SUPERUSER_ROLE = admin # Указываеем роль для суперюзера- Склонируйте репозиторий
git clone git@github.com:dmsnback/minicrm.git- Запускаем Docker контейнер
docker-compose up -d --build- Выполняем миграции
docker-compose exec backend alembic upgrade head - Создаём суперюзера
docker-compose exec backend python create_superuser.pyДокументация к API будет доступна по адресу: