Hibernia - это система учёта и управления данными одноимённой школы ирландских танцев.
Комплекс включает в себя БД PostgreSQL, сервер на Node.js с документацией на Swagger и клиентское приложение на Vue.js.
Данный проект является курсовой работой по дисциплине "Программные средства манипулирования данными".
git clone --recurse-submodules https://github.com/AipNooBest/Hibernia.git
cd Hibernia
git submodule update --init
mv .env.example .env
sudo docker-compose up -dПри необходимости можно изменить переменные окружения в файле .env
| Имя переменной | Значение по-умолчанию | Описание |
|---|---|---|
DB_HOST |
postgres |
Адрес расположения БД. Используется бэкендом для подключения к базе данных |
DB_PORT |
5432 |
Внешний порт БД. Используется во время инициализации БД, и если бэкенд поднят не в докере, то для подключения к БД |
DB_NAME |
hibernia |
Название БД. Используется во время инициализации БД, а также для подключения к БД из бэкенда |
DB_SULOGIN |
changeme |
Логин суперпользователя БД |
DB_SUPASSWORD |
changeme |
Пароль суперпользователя БД |
NODE_ENV |
production |
Режим работы бэкенда. При использовании production используются только реальные переменные окружения, не из .env. При использовании development отключается проверка авторизации, а все ошибки БД отправляются в чистом виде в виде ответа. При любом другом значении используется .env, но имеется проверка авторизации, а ошибки отфильтрованы |
API_PORT |
3000 |
Внешний порт работы бэкенда. Используется докером для прокидывания портов |
API_URL |
http://localhost:3000/api/v1 |
Внешний URL бэкенда. ВАЖНО: при деплое в интернет URL обязательно должен быть доступен извне. Данный URL используется фронтендом для отправки запросов бэкенду |
SWAGGER_PORT |
8080 |
Внешний порт сервиса документации |
TEST_USER |
changeme |
Имя пользователя, от которого будут происходить запросы в режиме development. |
TEST_PASSWORD |
changeme |
Пароль пользователя ^ |
REDIS_URL |
redis://redis:6379 |
Адрес подключения к Redis. Используется бэкендом для подключения. В нем хранятся токены пользователей для того, чтобы при перезагрузке сервера не сбрасывались сессии. Изначально в контейнере порты не прокинуты, поэтому достучаться до него можно только из бэкенда по внутренней сети |
SESSION_LIFETIME_SEC |
86400 |
Время жизни сессии и токена пользователя в секундах. По истечению сессии токен удаляется из Redis, а сама сессия сбрасывается |
FRONTEND_PORT |
80 |
Внешний порт работы фронтенда. Используется докером для прокидывания портов |
При первом запуске произойдет инициализация БД, создание суперпользователя и заполнение БД пустыми таблицами. Далее необходимо создать нового пользователя в PostgreSQL в роли ученика, учителя или админа. Для этого необходимо выполнить следующие команды:
sudo docker exec -it hibernia_db psql -U changeme -d hibernia
# Фамилия, Имя, Отчество, Возраст, Пол (0 - Мужской, 1 - Женский), Стаж, Логин, Пароль
CALL add_teacher('Иванов'::text, 'Иван'::text, 'Иванович'::text, 30, 0::bit, 10::numeric, 'ivanov'::text, '12345'::text);После этого можно перейти по адресу http://localhost и войти в аккаунт от имени учителя. Создание учеников происходит во вкладке "Список студентов"
Документация находится по адресу http://localhost:8080
Для работы проекта необходимо установить следующие зависимости:
- Node.js (>= 12.0.0)
- PostgreSQL (>= 12.0)
- Redis (>= 5.0.0)
git clone https://github.com/AipNooBest/Hibernia.git
cd Hibernia
npm install
npm run build
npm start
for file in ./database/*; do
sudo -u postgres psql "${file}"
done
git clone https://github.com/CheeseKeik/HiberniaCRM.git
cd HiberniaCRM
npm install
npm run dev # Если нужен режим разработки
cd Hibernia
mkdir docs
npm run swagger-autogen
Данное ПО распространяется под лицензией MIT. Подробнее в файле LICENSE или здесь:
MIT