Friends 2.0 — это веб-приложение для управления дружескими связями и челленджами между пользователями. Система позволяет пользователям регистрироваться, добавлять друзей, создавать челленджи, загружать доказательства выполнения и проводить модерацию выполненных заданий.
- Docker
- Docker Compose
-
Создайте .env и скопируйте содержимое для него из телеграма @vlados7529
-
Запустите проект с помощью Docker Compose:
docker-compose up -d --build-
После запуска сервисы будут доступны по следующим адресам:
- Фронтенд: http://localhost:3002
- Бэкенд API: http://localhost:3001/docs
- База данных PostgreSQL: localhost:3000
- MinIO Console: http://localhost:3111
-
Для остановки проекта:
docker-compose downusers: Основная информация о пользователяхrefresh_tokens: Refresh токены для обновления access токеновblacklisted_tokens: Черный список отозванных токенов
friendship_statuses: Статусы дружеских связей (pending, accepted, blocked)friendships: Дружеские связи между пользователями
challenge_statuses: Статусы челленджей (pending, accepted, completed, approved, rejected)challenges: Созданные челленджиproofs: Доказательства выполнения челленджей (файлы)reviews: Модерация выполненных челленджей
POST /auth/register- регистрация нового пользователяPOST /auth/login- вход в системуPOST /auth/logout- выход из системыGET /auth/me- информация о текущем пользователеGET /auth/confirm- подтверждение email
GET /friends/- список друзейGET /friends/get_requests- входящие заявки в друзьяPOST /friends/send_requests- отправка заявки в друзьяPATCH /friends/requests/{id}/accept- принятие заявкиDELETE /friends/requests/{id}/delete- удаление друга или заявкиGET /friends/blocked- список заблокированных пользователей
POST /challenges- создание челленджаGET /challenges- список челленджейGET /challenges/{id}- детали челленджаPOST /challenges/{id}/accept- принятие челленджаPOST /challenges/{id}/complete- завершение челленджаDELETE /challenges/{id}- удаление челленджа
POST /challenges/{id}/proofs- добавление доказательствDELETE /challenges/{id}/proofs/{proof_id}- удаление доказательства
POST /reviews/challenges/{id}- создание отзыва на выполненный челленджGET /reviews/challenges/{id}- список отзывов по челленджуGET /reviews/{id}- детали отзываDELETE /reviews/{id}- удаление отзыва
POST /files/upload- загрузка файла в MinIOGET /files/download/{name}- скачивание файлаDELETE /files/{name}- удаление файла
- Проверка авторизации и перенаправление
login.html- форма входа в системуregister.html- форма регистрации
friends.html- управление друзьями, отправка заявокfriend-requests.html- просмотр и обработка входящих заявокchallenges.html- список челленджей с фильтрациейcreate-challenge.html- создание нового челленджаchallenge-detail.html- детальная информация о челлендже
- FastAPI (Python)
- PostgreSQL
- SQLAlchemy (асинхронный)
- MinIO (объектное хранилище)
- JWT аутентификация
- Vanilla JavaScript
- HTML/CSS
- Nginx (сервер статики)
- Docker
- Docker Compose
- GitHub Actions (CI/CD)