Skip to content

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

License

Notifications You must be signed in to change notification settings

Semolik/if-else-aggregator

Repository files navigation

IF-ELSE AGGREGATOR

IF-ELSE AGGREGATOR — это платформа для поиска, организации и участия в образовательных и научных мероприятиях.

Основные возможности:

  • Управление мероприятиями: Создание, редактирование и поиск событий по категориям, тегам и местоположению
  • Ролевая модель:
    • Участники: поиск событий и обмен приглашениями
    • Организаторы: управление мероприятиями и статистикой
    • Модераторы: проверка контента
    • Администраторы: управление платформой
  • Рекомендательная система: Гибридная система на основе тегов, лайков и просмотров
  • Безопасность: Многоуровневая защита, включая VK ID интеграцию, двухфакторную аутентификацию и автоматическую блокировку при подозрительной активности
  • Карта мероприятий: Интерактивная карта с адаптивными метками для разных типов событий
  • Система отзывов и рейтингов: Оценка мероприятий участниками

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

Серверная часть:

  • FastAPI - веб-фреймворк для создания API
  • SQLAlchemy - ORM для работы с базой данных
  • Pydantic - валидация данных и управление настройками
  • PostgreSQL - реляционная СУБД

Клиентская часть:

  • Nuxt.js - фреймворк на основе Vue.js для создания интерфейса

Вот пример сворачивающегося блока с конфигурацией проекта, оформленного в формате Markdown:


🛠 Конфигурация проекта

  • Яндекс.Карты используются для перевода адреса в координаты и обратно.
  • GigaChat не обязателен — используется только для генерации моковых данных.
  • Стартовые теги находятся в файле startup-tags.txt и автоматически создаются при первом запуске сервиса.
Основные параметры
POSTGRES_HOST=database
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=if_else_db

BACKEND_CORS_ORIGINS=http://localhost:8000,http://localhost:3000

FIRST_SUPERUSER_EMAIL=admin@example.com
MAPS_API_KEY=ваш_ключ_Яндекс_Карт
GIGACHAT_API_KEY=ваш_ключ_GigaChat (опционально)
VK_APP=ваш_VK_ID_приложения

EMAIL_USERNAME=ваш_email@yandex.ru
EMAIL_PASSWORD=ваш_пароль
EMAIL_FROM=ваш_email@yandex.ru
EMAIL_SERVER=smtp.yandex.ru
EMAIL_PORT=465

HOST=https://frontend.domain.com
API_HOST=https://api.domain.com
COOKIE_DOMAIN=.domain.com
Фронтенд (Nuxt.js)

Файл: web/.env

HOSTNAME=frontend.domain.com
NUXT_PUBLIC_API_BASE_URL=api.domain.com
NUXT_PUBLIC_VK_APP_ID=1234

.env.dist также доступен для настройки начальной конфигурации фронтенда.

Запуск проекта

Продакшен-режим:

docker compose -f docker-compose-prod.yml up

Режим разработки:

docker compose up

Создание миграций:

docker-compose run api alembic revision --autogenerate -m "<название миграции>"

Доступ к PostgreSQL:

docker compose exec -it database bash
psql -h localhost -p 5432 -U postgres
\c if_else_db;

Команда разработки

Проект представляет собой комплексное решение для организации образовательного пространства, объединяющее участников, организаторов и экспертов в единой экосистеме.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •