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: Ошибка валидации.