just dev
just tests e2e
just docker up
Mentoro — это платформа для поиска и взаимодействия с менторами. Проект состоит из бэкенда и Android-приложения, которые взаимодействуют через REST API. Основная цель сервиса — предоставить пользователям удобный инструмент для поиска наставников, обмена знаниями и профессионального роста.
Для мониторинга бизнесс показателей используется Grafana
Описана в Архитектура проекта.
Описана в Архитектура БД.
Описана в Архитектура приложения.
Описано в CI/CD.
Покрытие тестами описано в Покрытие тестами.
Инструкция по использованию Swagger UI
- 📈 Масштабируемость — чистая архитектура и использование данного стека позволяют легко расширять функциональность.
- ✅ Надежность — автоматизированное тестирование и CI/CD обеспечивают стабильность работы.
- ⚡ Производительность — использование FastAPI и кэширования через Nginx-S3-Gateway гарантирует высокую скорость работы.
- 📌 Удобство — подробная документация API и визуализация метрик через Grafana упрощают разработку и мониторинг.
Документация API доступна по ссылке: 🔗 API Docs
Описание: Получение всех отправленных запросов на менторство.
Ответы:
200 OK
: Успешное получение данных.401 Unauthorized
: Пользователь не авторизован.
Описание: Создание заявки на менторство.
Ответы:
200 OK
: Заявка успешно создана.401 Unauthorized
: Пользователь не авторизован.404 Not Found
: Ментор не найден.409 Conflict
: Создание повторной заявки невозможно.422 Unprocessable Entity
: Ошибка валидации данных.
Описание: Удаление заявки на менторство. Возможно только для заявок, вердикта по которым еще нет.
Ответы:
200 OK
: Заявка успешно удалена.401 Unauthorized
: Пользователь не авторизован или заявка принадлежит ему.409 Conflict
: Удаление невозможно, заявка уже рассмотрена.422 Unprocessable Entity
: Ошибка валидации.
Описание: Регистрация студента.
Ответы:
200 OK
: Успешная регистрация.409 Conflict
: Пользователь с таким full_name уже существует.422 Unprocessable Entity
: Ошибка валидации.
Описание: Авторизация студента.
Ответы:
200 OK
: Успешный вход.401 Unauthorized
: Неверные данные для входа422 Unprocessable Entity
: Ошибка валидации.
Описание: Обновление аватара студента.
Ответы:
200 OK
: Фото обновлено.400 Bad Request
: Неверный тип файла.413 Payload Too Large
: Файл слишком большой.401 Unauthorized
: Студент не авторизован.422 Unprocessable Entity
: Ошибка валидации.
Описание: Получение данных о себе.
Ответы:
200 OK
: Данные получены.401 Unauthorized
: Студент не авторизован.
Описание:: Обновление данных о студенте.
Ответы:
200 OK
: Данные обновлены.401 Unauthorized
: Студент не авторизован.422 Unprocessable Entity
: Ошибка валидации.
Описание: Поиск менторов по интересам. Возвращает список из <= 3 менторов. После свайпа пропадают
Ответы:
200 OK
: Данные получены.401 Unauthorized
: Студент не авторизован.422 Unprocessable Entity
: Ошибка валидации.
Описание: Свайп менторов. Регистрирует свайп и добавление в избранное.
Ответы:
200 OK
: Успешно свайпнуто.401 Unauthorized
: Студент не авторизован.404 Not Found
: Ментор не найден.422 Unprocessable Entity
: Ошибка валидации.
Описание: Просмотр избранных менторов.
Ответы:
200 OK
: Данные получены.401 Unauthorized
: Студент не авторизован.
Описание: Удаление избранного ментора.
Ответы:
200 OK
: Успешное удаление.401 Unauthorized
: Студент не авторизован.404 Not Found
: Ментор не найден.422 Unprocessable Entity
: Ошибка валидации.
Описание: Регистрация ментора.
Ответы:
200 OK
: Успешная регистрация.409 Conflict
: Ментор с таким full_name уже существует.422 Unprocessable Entity
: Ошибка валидации.
Описание: Авторизация ментора.
Ответы:
200 OK
: Успешный вход.401 Unauthorized
: Неверные данные для входа.422 Unprocessable Entity
: Ошибка валидации.
Описание: Получение данных о себе.
Ответы:
200 OK
: Данные получены.401 Unauthorized
: Ментор не авторизован.
Описание: Обновление аватара ментора.
Ответы:
200 OK
: Фото обновлено.400 Bad Request
: Неверный тип файла.413 Payload Too Large
: Файл слишком большой.401 Unauthorized
: Ментор не авторизован.422 Unprocessable Entity
: Ошибка валидации.
Описание: Обновление данных о менторе.
Ответы:
200 OK
: Данные обновлены.401 Unauthorized
: Ментор не авторизован.422 Unprocessable Entity
: Ошибка валидации.
Описание: Получение данных о менторе. Контакты возвращаются только для пользователя заявка которого одобрена.
Ответы:
200 OK
: Данные получены.401 Unauthorized
: Пользователь не авторизован.404 Not Found
: Ментор не найден.422 Unprocessable Entity
: Ошибка валидации.
Описание: Получение заявок ментором
Ответы:
200 OK
: Данные получены.401 Unauthorized
: Ментор не авторизован.
Описание: Добавление вердикта к заявке.
Ответы:
200 OK
: Вердикт добавлен.401 Unauthorized
: Ментор не авторизован.404 Not Found
: Заявка не найдена.422 Unprocessable Entity
: Ошибка валидации.
Описание: Получение всех отзывов о менторе.
Ответы:
200 OK
: Данные получены.401 Unauthorized
: Студент не авторизован.422 Unprocessable Entity
: Ошибка валидации.
Описание: Получение всех отзывов о себе, для ментора.
Ответы:
200 OK
: Данные получены.401 Unauthorized
: Ментор не авторизован.
Описание: Добавление отзыва ментору. Можно добавить только один отзыв к ментору. Можно добавлять отзывы только к ментору заявка к которому одобрена.
Ответы:
200 OK
: Отзыв добавлен.401 Unauthorized
: Студент не авторизован.403 Forbidden
: Нельзя оставить отзыв.422 Unprocessable Entity
: Ошибка валидации.
Описание: Удаление отзыва.
Ответы:
200 OK
: Успешное удаление.401 Unauthorized
: Студент не авторизован.403 Forbidden
: Отзыв создан другим пользователем.404 Not Found
: Отзыв не найден.422 Unprocessable Entity
: Ошибка валидации.