Личный проект по курсу HTML академии Node.js. Разработка серверов приложений и API.
###О проекте «Типотека» — приложение для быстрого создания персональных блогов. Несколько простых шагов и вы автор современной площадки для публикации заметок. «Типотека» — это не только создание контента. Любой желающий читатель может зарегистрироваться и оставить комментарии. Создавайте заметки, общайтесь с читателями, модерируйте контент вместе с «Типотека».
- Студент: Александр Кригер.
- Наставник: Никита Куцелай.
Требования по окружению
- node.js 14.15.4 LTS
- PostgreSQL 12
-
Создаем файл
.env
в корне по аналогии с.env.example
. Для работы вебсокетов, нужно также обновить данные для подключения в./src/express/public/js/data-uploader.js
-
Устанавливаем зависимости
npm install
- Создание баз (основной и для тестов).
psql -U postgres -W -h localhost -a -f create-db.sql
psql -U postgres -W -h localhost -a -f create-test-db.sql
- Коннектимся к серверу
psql -U postgres -W -h localhost
- Создание пользователей для основной и тестовой базы. !не используй пароль по умолчанию!
CREATE USER "typoteka_user" WITH ENCRYPTED PASSWORD 'password';
CREATE USER "typoteka_test_user" WITH ENCRYPTED PASSWORD 'password';
- Выдаем доступ к базе для созданного пользователя
GRANT ALL PRIVILEGES ON DATABASE "typoteka" TO "typoteka_user";
GRANT ALL PRIVILEGES ON DATABASE "typoteka_test" TO "typoteka_test_user";
-
Отключаемся от базы
\q
. -
Выполняем все необходимые миграции.
npm run migrate:all
- При необходимости наполняем тестовыми данными. Это операция сотрет данные, если он были добавлены. Можно менять количество добавляемых статей последним параметром.
node ./src/service/service.js --generate 20
Если данные были сгенерированы таким образом, то вот доступы для автора и читателя:
Автор
email: example@example.com
password: 123456
Читатель
email: example1@example.com
password: 123456
- Запускаем тесты.
npm run test
- Запускаем API сервис
npm run start
##Схема БД
Подробная схема sql лежит в /schema.sql