Skip to content

Latest commit

 

History

History
63 lines (49 loc) · 3.97 KB

README.md

File metadata and controls

63 lines (49 loc) · 3.97 KB

Another-Knowelege-Base

backend сервис "Another Knowelege Base"

Схема БД описана в db.xml просмотреть можно на сайте https://sql.toad.cz/? -> "Сохранить/Загрузить"->Скопировать содержимое файла и вставить в поле "Ввод/вывод"->"Загрузить XML" Импортируйте Настройки Postman

	-    Another Knowelege Base.postman_collection.json - Postman Collection v2.1 
	-    AnotherKnowelegeBase.postman_environment - Postman Environment

Варианты запуска:

  1. запуск в DockerCompose
	cd Another-Knowelege-Base
	docker-compose -f .\docker-compose-dev.yml up --build
  1. запуск в node.js + mongoDB - предполагается что установлена и доступна по 127.0.0.1:27017/knowelege
	cd Another-Knowelege-Base
    	npm i
    	npm start

Тестовое задание

Требуется написать backend сервис "Another Knowelege Base", который:

  • хранил статьи базы знаний. Статья должна иметь следующие аттрибуты:
    • заголовок
    • содержание
    • тэги статьи
    • признак "публичная" / "внутренняя"
    • любый другие атрибуты на усмотрение разработчика или если они требуются для реализации
  • позволял через REST интерфейс добавлять статьи / изменять атрибуты статей / удалять статьи
  • позволял через REST интрефейс получать статьи
    • по одной
    • списком
    • списком с фильтрацией по тегам
  • хранил и авторизовывал пользователей. Пользователь должен иметь следующие втрибуты:
    • емайл
    • любые другие атрибуты на усмотрение разработчика или если они требуются для реализации
  • осуществлял контроль доступа к статьям и операциям над ними
    • авторизованные пользователи могут создавать, изменять, удалять статьи и пользователей
    • неавторизованный пользователи могут лишь получать статьи, у которых установлен атрибут "публичная" и не могут создавать / изменять / удалять статьи и пользователей

Решение должно быть предоставлено в виде git репозитория / архива с проектом (zip/tar.gz/tar.bz), который должлен содержать:

  • исходный код
  • инструкции по сборке / разворачиванию приложения и его зависимостей
  • любые другие файлы при необходимости

При решении задания:

  • использовать только nodeJS (JS/TS по выбору)
  • можно использовать любые DB, но с тем пониманием, чтобы предоставить обоснование сделанного выбора по требованию
  • можно использовать любые библиотеки, но с тем пониманием, чтобы предоставить обоснование сделанного выбора по требованию

Тесты:

  • на усмотрение разработчика, но с тем пониманием, чтобы предоставить обоснование сделанного выбора по требованию