Skip to content

RiddleFlow is a platform for hosting and managing coding contests with automated solution checking and role-based access.

License

Notifications You must be signed in to change notification settings

DEAL-DUCK/RiddleFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RiddleFlow

Описание

RiddleFlow — это платформа для организации и проведения хакатонов и контестов. Она включает в себя систему проверки решений и ролевую модель (участник/создатель). Платформа позволяет пользователям регистрироваться, участвовать в хакатонах, создавать задания и отправлять решения.

Технологический стек

  • Backend: Python, FastAPI, SQLAlchemy, Alembic
  • База данных: PostgreSQL
  • Кеширование: Redis
  • Фоновые задачи: Celery
  • Контейнеризация: Docker

Установка и запуск

Предварительные требования

Клонирование репозитория

git clone https://github.com/yourusername/RiddleFlow.git
cd RiddleFlow

Создайте виртуальное окружение и выполните миграции

cd services/backend/src
pip install -r requirements.txt
alembic upgrade head

Запуск приложения

  1. Соберите и запустите контейнеры:
docker-compose up -d --build
  1. После успешного запуска, приложение будет доступно по адресу: http://localhost:5000.

Доступ к Flower

Для мониторинга фоновых задач Celery, вы можете получить доступ к Flower по адресу: http://localhost:5555.

Миграции базы данных

При первом запуске приложения, необходимо выполнить миграции базы данных:

docker-compose exec backend alembic upgrade head

Остановка приложения

Чтобы остановить приложение, выполните:

docker-compose down

Использование

  • Зарегистрируйтесь как участник или создатель.
  • Создавайте хакатоны и задания.
  • Участвуйте в хакатонах, отправляя свои решения.

Лицензия

Этот проект лицензирован под лицензией GNU General Public License v3.0. Подробности можно найти в файле LICENSE.

Список использованных материалов и референсов

При разработке проекта на FastAPI мы опирались на официальную документацию, статьи и обучающие материалы, чтобы обеспечить корректную реализацию ключевых компонентов системы.

Официальная документация

  1. FastAPI

    • Документация FastAPI
    • Основной источник информации по построению API, работе с зависимостями (Dependency Injection), валидации данных через Pydantic и автоматической генерации OpenAPI-документации.
  2. Celery

    • Документация Celery
    • Использовалась для настройки фоновых задач. Особое внимание уделялось интеграции с FastAPI и мониторингу через Flower.
  3. SQLAlchemy

    • Документация SQLAlchemy
    • Применялась для работы с реляционными базами данных в сочетании с FastAPI (через SQLAlchemy ORM и asyncpg для асинхронных запросов).
  4. Redis

    • Документация Redis
    • Использовался как брокер сообщений для Celery, а также для кэширования часто запрашиваемых данных.

Дополнительные материалы

  1. Статья "Developing a Single-Page App with FastAPI and Vue.js" (testdriven.io)

    • Ссылка
    • Помогла в настройке взаимодействия бэкенда (FastAPI) с фронтендом (Vue.js), включая CORS и асинхронные HTTP-запросы.
  2. Обучающий плейлист по FastAPI (YouTube)

    • Ссылка
    • Разбор архитектурных решений, работы с Pydantic, SQLAlchemy и построения REST API.
  3. Статья "Celery + Flower: асинхронные задачи в Python" (Habr)

    • Ссылка
    • Практическое руководство по настройке Celery и визуализации задач через Flower.

About

RiddleFlow is a platform for hosting and managing coding contests with automated solution checking and role-based access.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •