- В репозитории с приложением имеется файл
Readme.md
, содержащий подробные инструкции по установке, запуску и использованию приложения плюс 10 баллов - Сервер возвращает соответствующие ответы на запросы:
- GET
/person
:- Сервер возвращает статус код 200 и все записи плюс 6 баллов
- GET
/person/{personId}
:- Сервер возвращает статус код 200 и запись с
id === personId
, если такая запись есть плюс 10 баллов - Сервер возвращает статус код 400 и соответствующее сообщение, если
personId
невалиден (неuuid
) плюс 6 баллов - Сервер возвращает статус код 404 и соответствующее сообщение, если запись с
id === personId
не найдена плюс 6 баллов
- Сервер возвращает статус код 200 и запись с
- POST
/person
- Сервер возвращает статус код 201 и свежесозданную запись плюс 10 баллов
- Сервер возвращает статус код 400 и соответствующее сообщение, если тело запроса не содержит обязательных полей плюс 6 баллов
- PUT
/person/{personId}
- Сервер возвращает статус код 200 и обновленную запись плюс 10 баллов
- Сервер возвращает статус код 400 и соответствующее сообщение, если
personId
невалиден (неuuid
) плюс 6 баллов - Сервер возвращает статус код 404 и соответствующее сообщение, если запись с
id === personId
не найдена плюс 6 баллов
- DELETE
/person/{personId}
- Сервер возвращает статус код 204 если запись найдена и удалена плюс 10 баллов
- Сервер возвращает статус код 400 и соответствующее сообщение, если
personId
невалиден (неuuid
) плюс 6 баллов - Сервер возвращает статус код 404 и соответствующее сообщение, если запись с
id === personId
не найдена плюс 6 баллов
- Ошибки, возникающие при обработке запроса на
/person
корректно обрабатываются и в случае их возникновения API возвращает статус код 500 с соответствующим сообщением плюс 10 баллов - Запросы на несуществующие ресурсы (например,
/some/non/existing/resource
) корректно обрабатываются (возвращается human friendly сообщение и 404 статус код) плюс 6 баллов - Приложение запускается в development-режиме при помощи
nodemon
(имеетсяnpm
скриптstart:dev
, который запускает отслеживание изменений в файлах приложения) плюс 6 баллов - Приложение запускается в production-режиме при помощи
webpack
(имеетсяnpm
скриптstart:prod
, который запускает процесс сборки webpack и после этого запускает файл с билдом) плюс 6 баллов - Значение
PORT
хранится в.env
файле плюс 6 баллов
- Имеются E2E тесты, покрывающие логику приложения (не меньше 3 различных сценариев) плюс 30 баллов Пример сценария:
- GET-запросом получаем все объекты (ожидается пустой массив)
- POST-запросом создается новый объект (ожидается ответ, содержащий свежесозданный объект)
- GET-запросом пытаемся получить созданный объект по его
id
(ожидается созданный объект) - PUT-запросом пытаемся обновить созданный объект (ожидается ответ, содержащий обновленный объект с тем же
id
) - DELETE-запросом удаляем созданный объект по
id
(ожидается подтверждение успешного удаления) - GET-запросом пытаемся получить удаленный объект по
id
(ожидается ответ, что такого объекта нет)
- Полная ссылка на репозиторий с решением отличается от
https://github.com/%your-github-id%/simple-crud-api
минус 100 баллов - Использование любых пакетов, библиотек, фреймворков кроме
nodemon
,dotenv
,cross-env
,eslint
и его плагинов,webpack
и его плагинов,uuid
, а также библиотек, используемых для тестирования минус 130 баллов - Имеются коммиты после дедлайна, за исключением коммитов, изменяющих исключительно
Readme.md
либо вспомогательные файлы (.gitignore
,.prettierrc.json
и т.д.) минус 30% от максимального балла за задание (минус 49 баллов) - Отсутствует PR либо его описание некорректно (отсутствуют либо некорректен любой из 3 обязательных пунктов) минус 20 баллов
- Отсутствует отдельная ветка для разработки минус 20 баллов
- Меньше 3 коммитов в ветке разработки, не считая коммиты, вносящие изменения только в
Readme.md
либо вспомогательные файлы (.gitignore
,.prettierrc.json
и т.д.) минус 20 баллов