Skip to content

sitnikovik/ndbx

Repository files navigation

NoSQL Database Exploration

Quality Tests Lab Progress

Проект содержит все необходимые материалы для курса по NoSQL базам данных и пайплайн в GitHub Actions для проверки лабораторных работ.

Лабораторный проект

EventHub — backend‑сервис платформы мероприятий, предназначенный для изучения различных подходов к хранению и обработке данных с использованием NoSQL баз данных. Проект выполняется поэтапно в рамках лабораторных работ и представляет собой единый сервис, который развивается в течение всего курса.

Цель проекта — на практике понять, как работают NoSQL базы данных, их сильные и слабые стороны, и сравнить различные подходы к хранению данных.

Вы научитесь работать с 4-мя NoSQL базами данных:

Всего будет 7 лабораторных работ:

  1. Старт: Healthcheck
  2. Redis: Сессии пользователей
  3. MongoDB: Пользователи и события
  4. MongoDB: Шардирование и репликация
  5. Cassandra: Реакции на мероприятия
  6. Cassandra: Отзывы на мероприятия
  7. Neo4j: Связи и рекомендации

Задания публикуются постепенно по мере прохождения курса

Требования к реализации

  • Используйте предоставленный шаблон репозитория ndbx-template
  • Соблюдайте требования к структуре проекта, описанные в CONTRIBUTING.md
  • Можно использовать любой язык программирования
  • Фреймворки и библиотеки - на ваше усмотрение, но не забывайте о производительности
  • Все лабораторные работы должны полностью проходить автоматическую проверку в GitHub Actions
  • Каждая последующая лабораторная работа должна на основе предыдущей
  • Очередная лабораторная работа не должна ломать функциональность предыдущих лабораторных работ (проверяется в процессе автоматической проверки)

Система оценивания

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

У каждой лабораторной работы есть своя максимальная сумма баллов и срок сдачи. Если вы сдаёте работу после срока, то из полученных баллов вычитается "штраф за просрочку".

Сроки и баллы указаны в таблице успеваемости (уточняйте у преподавателя).

Рекомендации

  • Документируйте исходный код, соблюдая стандарты, например:
  • Собюдайте конвенцию коммитов
  • Каждый коммит - рабочая и протестированная версия проекта. Это облегчит поиск последней рабочей версии при поиске ошибки
  • Пишите документацию на Markdown в Obsidian или в вашей IDE.
  • Используйте Makefile для удобного взаимодействия с проектом
  • Используйте PlantUML для создания блок-схемы и диаграмм. Есть возможность предпросмотра в IDE (в VSCode через расширение PlantUML) и утилиты graphviz и Java, установленных на вашем компьютере (подробнее)
  • Схемы БД реализуйте через DBML и dbdiagram.io. В VSCode есть расширение для предпросмотра
  • Ведите коллекцию Postman или Insomnia c примерами запросов и ответов для каждого эндпоинта. Можно развернуть Swagger, но не обязательно.
  • Используйте публичные датасеты с тестовыми данными, например, из Kaggle или генерируйте свои на Python, Go или любом другом языке программирования.
  • Если нужен текст-рыба - используйте

About

Course for exploring NoSQL database systems and their distributed internals

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages