Skip to content

Repository files navigation

Hibernia

Hibernia - это система учёта и управления данными одноимённой школы ирландских танцев. Комплекс включает в себя БД PostgreSQL, сервер на Node.js с документацией на Swagger и клиентское приложение на Vue.js.
Данный проект является курсовой работой по дисциплине "Программные средства манипулирования данными".

Скриншоты

Страница авторизации Страница учёта посещений

Установка проекта (docker-compose)

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)

Backend

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

Frontend

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

About

Система учёта и управления данными школы ирландских танцев

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages