- Инструкция по запуску
1.1 Запуск Docker
1.2 Запуск npm + postgres - Взаимодействие с клиентом
- Чеклист проекта
- База данных
- Стек технологий
Вы можете запустить проект двумя разными способами. Для начала перейдите в корневую папку проекта и откройте терминал
Проверить наличие docker:
docker --version
Проверить наличие docker-compose:docker-compose --version
Предварительно запустите Docker Engine
1.1 Сборка контейнеров
docker-compose up -d
1.2 Копирования sql-скрипта контейнер
docker cp ./init-db.sql postgres_db:/docker-entrypoint-initdb.d/init.sql
1.3 Запуск sql-скрипта в контейнере
docker exec -it postgres_db psql -U user -d company -f /docker-entrypoint-initdb.d/init.sql
1.4 Откройте ссылку в браузере
Если данные не появились, попробуйте перезапустить контейнер с бд и сервером, а затем повторить пункты 1.2 и 1.3
2.1 Подключитесь к postgres на локальной машине
2.2 Создайте базу данных company
2.3 Настройте конфиг подключения к базе данных в ./server/src/config/db.config.js
2.4 Установите зависимости для сервера:
Перейдите в
./server
и запустите в консолиnpm install
2.4 Запустите сервер:
Перейдите в
./server
и запустите в консолиnpm start
2.5 После успешного подключения откройте psql или pgAdmin и выполните sql-скрипт из файла ./init-db.sql
2.6 Установите зависимости для клиента:
Перейдите в
./client
и запустите в консолиnpm install
2.7 Запустите клиент:
Перейдите в
./client
и запустите в консолиnpm start
2.8 Откройте ссылку в браузере
Верхняя таблица (главная) отображает список офисов компании, нижняя таблица (связанная) отображает данные о сотрудниках в каждом офисе. CRUD операции представлены только для связанной таблицы.
Чтобы взаимодействовать с таблицей сотрудников, для начала выберите любой офис нажатием на строчку главной таблицы. Теперь вы можете добавлять, изменять и удалять данные о сотрудниках. Кнопки изменения и удаления доступны только при выбранном сотруднике. При добавлении и изменении появляется модальное окно.
В офисе может не быть сотрудников. Если вы не хотите добавлять их собственноручно, выберите другой офис.
- База данных company в Postgres с двумя таблицами
- Таблицы связаны по полю foreign key у office
- Каждая таблица имеет поле-ключ и другие поля
- Скрипт init-db.sql в корневой папке проекта
- Подключение к БД с помощью sequalize
- Часть функций написана на SQL (запросы к таблице office)
- Частичная подгрузка данных для office с помощью LIMIT и OFFSET
- Роутеры написаны по архитектурному стилю REST API
- Сервер реализует CRUD операции
- Серверная часть разбита на папки models, controllers и routes по сущностям employee и office
- Валидация данных и обработка ошибок
- Сервер-сайд фильтрация и сортировка для таблицы office
- Dashboard c боковым меню из пунктов Таблицы, Профиль, Чекликст
- 2 таблицы Ag-Grid с данными, полученными от сервера
- Над связанной таблицей (Employee) кнопки Добавить, Изменить, Удалить
- Добавление/изменение записи учитывает связь с главной таблицей
- Главная таблица (Office) реализует infinite loading
- Dashboard использует шаблон c сайта Creative Tim (Material Dashboard 2 React)
- Валидация вводимых данных
- Кастомизация и адаптивность
- Инструкция по запуску в README.md
- Docker и Docker compose
Column | DataType |
---|---|
id | INTEGER |
country | STRING |
city | STRING |
square | DECIMAL(20,2) |
squareRentPrice | DECIMAL(20,2) |
openingDate | DATEONLY |
createdAt | DATEONLY |
updatedAt | DATE |
Column | DataType |
---|---|
id | INTEGER |
firstName | STRING |
lastName | STRING |
gender | ENUM |
birthday | DATEONLY |
position | ENUM |
salary | DECIMAL(20) |
passport | DECIMAL(10) |
createdAt | DATEONLY |
updatedAt | DATE |
officeId | Foreign key |
Ag-Grid