/itmo-webapp-hw02-rest-api

Web Applications homework #2 at ITMO University

Primary LanguageTypeScript

Задача «Артемий слишком занят»

Основное задание

Билли отправляется в путешествие и ему хочется составить список мест, которые он желает посетить. Но память постоянно подводит Билли, и он забывает, в каких местах ему уже довелось побывать. Чтобы путешествие Билли было увлекательным, и он посетил запланированные достопримечательности, ему нужен сервис для сохранения и просмотра отметок о посещенных местах.

Билли прочитал хорошую книгу по фронтенду и сделает его сам, а своего друга, опытного путешественника Артемия, попросил реализовать REST-интерфейс (API), используя Express. В качестве базы Артемий использовал PostreSQL. Но Артемий укатил в очередную экспедицию, и просит помощи у вас.

Билли просил

  • Возможность добавления нового места (страны, города, достопримечательности)
    • Место состоит из названия, описания, города, страны и отметки о посещении
    • Место создается непосещённым
  • Возможность получения списка мест
    • Можно сортировать по дате создания
    • Можно сортировать по алфавиту
    • Можно выводить список мест постранично
  • Возможность редактирования описания конкретного места
  • Возможность отметить место посещённым или непосещённым
  • Возможность удаления места

Билли допом просил

  • Возможность менять порядок мест в списке
  • Возможность очистки всего списка мест
  • Возможность поиска места по его описанию

Доступные команды

Запускаются так: npm run <command>

Команда Действие
test Запуск всех тестов
test:watch Запуск тестов при изменении кода
test:coverage Проверка уровня покрытия кода тестами
lint Проверка кода линтером
lint-fix Исправление ошибок, выявленных линтером
format Форматирование кода

Советы Артемия

  • Поднимайте базу локально, а что бы подключиться к базе используйте ORM Sequelize
  • Что бы тесты проходили успешно в CI и Локально используйте конфиги для подключения: login: admin, pass: admin, host: postgres, port: 5432
  • Что бы каждый раз руками не дергать запросы, используйте тесты. В репозитории есть несколько примеров.

artemii