Skip to content

prev0id/chattery

Repository files navigation

Chatter - Group chatting app

Logo

Документация к проекту расположена в docs

TODO

Список задач по котором можно отслеживать прогресс проекта

Прогресс: (~67%) Задач всего: 92 Выполнено: 62 Осталось: 30

Infra (4/9 ~44%)

Задачи связанные с инфраструктурой сервиса, деплоем и локальной разработкой

  • (4/4) Локальная разработка
    • docker-compose
    • Makefile
    • Air (live reload)
    • Миграции
  • (0/5) Деплой
    • Домен
    • DNS
    • Postgres
    • Redis
    • Server

Backend (35/48 ~73%)

Задачи на серверную часть проекта

  1. (13/13) User service
    • Миграция БД
    • Domain структуры
    • SQLC запросы
    • Создание профиля
    • Удаление профиля
    • Логин
    • Разлогин
    • Поиск
    • Обновление профиля
    • Создание сессии
    • Удаление сессии
    • Аутентификационная мидделвара
    • Интеграция с фронтендом
  2. (7/7) DM service (личные сообщения)
    • Миграция БД
    • Domain структуры
    • SQLC запросы
    • Создание DM
    • Список DM пользователя
    • Сообщения (первая/следующие страницы)
    • Интеграция с Hub (WebSocket)
  3. (11/11) Server service (публичные сервера с топиками)
    • Миграция БД (servers, topics)
    • Domain структуры
    • SQLC запросы
    • Создание сервера
    • Обновление сервера
    • Удаление сервера
    • Присоединение к серверу
    • Выход из сервера
    • CRUD топиков
    • Сообщения в топиках
    • Интеграция с Hub (WebSocket)
  4. (4/10) WebSocket Hub (realtime сообщения + signaling)
    • WebSocket endpoint /v1/signaling/ws
    • Join канала (DM/Server)
    • Leave канала
    • Broadcast сообщений участникам
    • Call events (EventCallStart, EventCallEnd)
    • WebRTC signaling (offer, answer, ice candidates)
    • Call room management (voice топики)
    • Нотификация дисконекта участников
    • Broadcast участникам звонка
    • Интеграция звонка с фронтендом
  5. (0/7) Call Service
    • Domain: Call, CallParticipant структуры
    • Redis: хранение активных звонков
    • Hub: создание/удаление комнаты звонка
    • Hub: вход/выход участников
    • Signaling: обработка offer/answer
    • Signaling: обработка ICE candidates
    • Запись звонков (опционально)

Frontend (23/40 ~58%)

Задачи на клиентскую часть проекта (SolidJS)

  1. (4/4) Общее
    • Vite + SolidJS зависимость
    • Общие стили (Tailwind CSS)
    • Toast уведомления
    • UI компоненты (Button, FormTextInput, Modal, avatar)
  2. (3/3) Страницы
    • Страница логина (UI)
    • Страница регистрации (UI)
    • Главная страница App (UI)
  3. (10/18) Sidebar
    • Tab switching (direct/servers)
    • Компоненты SidebarServer, SidebarDM
    • API: загрузка списка серверов
    • API: загрузка списка DM
    • API: поиск серверов
    • API: поиск пользователей
    • API: создание сервера
    • API: присоединение к серверу
    • UI: сервер с топиками
    • UI: создание/удаление сервера
    • UI: создание/удаление топика
    • UI: модалка настроек профиля
    • API: обновление профиля
    • API: разлогин
    • JS: menu-bar + content-bar communication
    • JS: запись табов в URL
    • JS: получение данных профиля
  4. (5/7) Чат
    • Компонент Chat
    • Компонент ChatMessage
    • Компонент ChatInput
    • WebSocket клиент с переподключением
    • API: отправка сообщения
    • API: загрузка истории
    • JS: авто-прокрутка к новым сообщениям
  5. (0/8) Звонки
    • WebRTC хук (useWebRTC)
    • Поддержка микрофона
    • Поддержка камеры
    • Поддержка трансляции экрана
    • UI: компонент звонка
    • UI: отображение участников
    • Интеграция с signaling WebSocket
    • Call UI для voice топиков

To fix:

  • sort services, topics, dms

Extra (на подумать)

  • Turn server
  • Unit tests
  • E2E tests
  • Push notifications