FastAPI & NoSQL Chat
Простий, але потужний чат-додаток, створений для демонстрації принципів роботи з NoSQL базами даних в сучасному веб-стеку. Проєкт демонструє взаємодію між FastAPI, MongoDB, Redis та WebSockets, запаковану в Docker для легкого розгортання.
Цей проєкт був повністю згенерований та налагоджений у спільному сеансі з Gemini 2.5 Pro.
🚀 Технологічний стек
Бекенд: FastAPI
База даних для повідомлень та користувачів: MongoDB (документо-орієнтована NoSQL)
Кеш та лічильник активних користувачів: Redis (in-memory NoSQL)
Зв'язок у реальному часі: WebSockets
Контейнеризація: Docker та Docker Compose
Фронтенд: Чистий HTML, CSS та JavaScript з Bootstrap 5
🛠️ Як запустити
Клонуйте репозиторій:
git clone <URL_вашого_репозиторію>
cd <назва_папки>
Переконайтеся, що у вас встановлено Docker та Docker Compose.
Запустіть проєкт:
Відкрийте термінал у кореневій папці проєкту і виконайте команду:
docker-compose up --build
Відкрийте додаток:
Перейдіть у вашому браузері за адресою http://localhost:8000.
✨ Продемонстровані можливості
Реєстрація користувачів з хешуванням паролів.
Чат у реальному часі через WebSockets.
Повний набір CRUD-операцій для повідомлень (створення, читання, оновлення, видалення).
Використання Redis для швидкого доступу до даних (лічильник активних користувачів).
Приклади складних агрегаційних запитів до MongoDB для отримання статистики:
Найактивніші користувачі.
Активність по годинах.
Кількість повідомлень за день.
Середня довжина повідомлення користувача.
Повна інтеграція всіх сервісів за допомогою Docker Compose.