Предисловие
Я начинающий веб разработчик и эта статья не является обучающей. Выпускаю её для того, чтобы получить фидбек, устранить ошибки в своём проекте и обучиться новому.
Проект делиться на репозитория 2 - серверную часть (NestJS) и клиентскую часть (React)
Where's They?
Where's They? - это универсальный мониторинг посещений. Разделение посетителей на группы и типы, просмотр посещений в определенный момент - всё это Where's They?
Начальная структура проекта - серверная часть
Модули
Входным модулем является app, а все остальные перемещены в отдельную папку modules
Всего будет создано 4 модуля
- Посетитель
- Посещение
- Группа
- Тип
Каждый из модулей включает в себя сервис, контроллер и DTO
Сущности
Сущности вынесены отдельно от модулей и хранятся в папке entities. Для каждого модуля есть своя сущность.
База данных
Для взаимодействия с базами данных выбрана СУБД MySQL. Подключение к ней осуществляется через TypeORM и ormconfig.json
В будущем будут добавлены миграции
Подключение TypeORM
Подключение TypeORM осуществляется в декораторе Module корневом модуле (app). Благодаря тому, что мы создали ormconfig, у нас нет необходимости прописывать в нем подключение.
TypeOrmModule.forRoot() - использование forRoot() означает то, что подключение происходит в корневом модуле.
Подключение сущностей происходит в дочерних модулях. Пример: GroupEntity должно быть импортировано в модуль group и с помощью TypeOrmModule.forFeature(). Использование .forFeature() обусловлено тем, что модуль group не является корневым
Конец первой части
В данный части была описана структура проекта и способ подключения к базе данных. В следующей части будет продолжение разработки серверной части, а именно:
- Рассмотрен каждый модуль отдельно
- Описание API
- Swagger документация