Skip to content

KomaruTech/Backend

Repository files navigation

Backend

Репозиторий разработки backend`a

Как это запустить

docker-compose up --build

Миграции

  • Если надо новые, то надо удалить ModelSnapshot (не знаю почему, если этого не сделать миграции будут пустые)

Структура базы данных

Типы ENUM

  • event_type: тип мероприятия

    • 'general' — общее мероприятие (митапы, тимбилдинги и т.п.)
    • 'personal' — персональное (1:1 встречи, консультации)
    • 'group' — групповое (для команд или проектов)
  • application_status: статус заявки спикера

    • 'pending' — ожидает рассмотрения
    • 'approved' — одобрено
    • 'rejected' — отклонено

Таблица users

Хранит информацию о пользователях системы.

Поле Тип Описание
id INTEGER Уникальный идентификатор
login VARCHAR(32) Уникальный логин
password_hash VARCHAR(255) Хэш пароля
name VARCHAR(32) Имя пользователя
surname VARCHAR(64) Фамилия пользователя
email VARCHAR(64) Email (необязательный)
telegram_id VARCHAR(32) Telegram ID для уведомлений (необязательный)
notification_preferences_id INTEGER Связь с таблицей notification_preferences
avatar BYTEA Фото пользователя

Таблица notification_preferences

Настройки уведомлений для каждого пользователя.

Поле Тип Описание
id INTEGER Уникальный ID
notify_telegram BOOLEAN Уведомления в Telegram
notify_email BOOLEAN Уведомления на Email
reminder_before_1day BOOLEAN Напоминание за 1 день
reminder_before_1hour BOOLEAN Напоминание за 1 час

Таблица events

Мероприятия, созданные пользователями.

Поле Тип Описание
id INTEGER Уникальный идентификатор
name VARCHAR(64) Название мероприятия
description TEXT Описание мероприятия
time_start TIMESTAMP Время начала
time_end TIMESTAMP Время окончания
type ENUM (event_type) general, personal, group
location VARCHAR(1000) Место проведения
created_by INTEGER Автор события (FK users.id)
keywords JSONB Ключевые слова (по умолчанию — пустой список [])

Таблица event_participants

Связь участников с мероприятиями.

Поле Тип Описание
user_id INTEGER ID пользователя
event_id INTEGER ID мероприятия
is_speaker BOOLEAN Является ли спикером
attendance_marked BOOLEAN Отметка о присутствии

Таблица event_photos

Связь фотография с мероприятиями

Поле Тип Описание
id INTEGER Уникальный идентификатор изображения
event_id INTEGER ID мероприятия, к которому привязано фото (FK events.id)
image BYTEA Бинарные данные изображения
mime_type VARCHAR(20) MIME-тип изображения (например, image/jpeg, image/png)
uploaded_at TIMESTAMP Дата и время загрузки изображения
description TEXT Описание или подпись к изображению (необязательно)

Таблица event_feedback

Отзывы и оценки пользователей о мероприятиях.

Поле Тип Описание
id INTEGER Уникальный ID
user_id INTEGER Кто оставил отзыв
event_id INTEGER Какое мероприятие
rating SMALLINT Оценка от 1 до 5
created_at TIMESTAMP Дата и время отзыва
comment TEXT Комментарий (необязательный)

Таблица speaker_applications

Заявки сотрудников на выступление.

Поле Тип Описание
id INTEGER Уникальный ID
user_id INTEGER Автор заявки
event_id INTEGER Целевое мероприятие
topic TEXT Тема выступления
status ENUM(application_status) pending, approved, rejected (по умолчанию pending)
created_at TIMESTAMP Дата подачи

Таблица teams

Команды, к которым могут принадлежать пользователи и события.

Поле Тип Описание
id INTEGER Уникальный идентификатор команды
name VARCHAR(255) Название команды (уникальное)
description TEXT Описание команды (необязательно)

Таблица user_teams

Связь пользователей и команд (многие ко многим).

Поле Тип Описание
user_id INTEGER ID пользователя
team_id INTEGER ID команды

Схема для PostgreSQL

About

Репозиторий разработки backend`a

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •