Библиотека, предоставляющая (REST) API для работы с расписанием лекций из первого задания.
- Не может быть двух школ с одинаковым названием.
- Не может быть двух аудиторий с одинаковым названием.
- Нельзя добавить лекцию для несуществующей школы или аудитории.
- Для одной школы не может быть двух лекций одновременно.
- В одной аудитории не может быть одновременно двух разных лекций.
- Вместимость аудитории должна быть больше или равной количеству студентов на лекции.
- MongoDB – в качестве базы для постоянного хранения данных.
- mLab – в качестве сервиса для размещения базы данных.
- Веб–интерфейс для работы со всеми ресурсами, доступный по http://localhost:8080
- Покрытие тестами REST ресурсов.
- Node.js версии >=7.6.0, для корректной работы async / await
- Весь клиентский javascript транспилится через babel в браузере.
- В фильтрах используется нативный компонент даты (поддерживается не во всех браузерах).
- При добавлении / редактировании записи отсутствует компонент даты + времени.
| Название | Тип | Описание | Обязательно | Знач. по умолч. |
|---|---|---|---|---|
| name | String – unique | Название школы | да | |
| studentsCount | Number | Количество студентов в школе | нет | 0 |
$ curl -X GET \
http://localhost:8080/api/v1/schools/<schoolID>/lectures[?start=MM-DD-YYYY[&end=MM-DD-YYYY]]$ curl -X GET \
http://localhost:8080/api/v1/schools$ curl -X POST \
http://localhost:8080/api/v1/schools \
-H 'Content-Type: application/json' \
-d '{ "name": "", "studentsCount": "" }'$ curl -X PUT \
http://localhost:8080/api/v1/schools/<schoolID> \
-H 'Content-Type: application/json' \
-d '{ "name": "", "studentsCount": "" }'$ curl -X DELETE \
http://localhost:8080/api/v1/schools/<schoolID>| Название | Тип | Описание | Обязательно | Знач. по умолч. |
|---|---|---|---|---|
| name | String – unique | Название аудитории | да | |
| capacity | Number | Вместимость аудитории | нет | 0 |
| location | String | Расположение аудитории | да |
$ curl -X GET \
http://localhost:8080/api/v1/audiences/<audienceID>/lectures[?start=MM-DD-YYYY[&end=MM-DD-YYYY]]$ curl -X GET \
http://localhost:8080/api/v1/audiences$ curl -X POST \
http://localhost:8080/api/v1/audiences \
-H 'Content-Type: application/json' \
-d '{ "name": "", "capacity": "", "location": "" }'$ curl -X PUT \
http://localhost:8080/api/v1/audiences/<audienceID> \
-H 'Content-Type: application/json' \
-d '{ "name": "", "capacity": "", "location": "" }'$ curl -X DELETE \
http://localhost:8080/api/v1/audiences/<audienceID>| Название | Тип | Описание | Обязательно | Знач. по умолч. |
|---|---|---|---|---|
| name | String – unique | Название лекции | да | |
| schools | Array [ObjectId] | ID's школ | да | |
| lecturers | Array | Лектора | да | |
| audience | ObjectId | ID аудитории | да | |
| startTime | Number | Начало лекции (MM-DD-YYYY HH:mm) | да | |
| endTime | Number | Конец лекции (MM-DD-YYYY HH:mm) | да |
$ curl -X GET \
http://localhost:8080/api/v1/lectures$ curl -X POST \
http://localhost:8080/api/v1/lectures \
-H 'Content-Type: application/json' \
-d '{ "name": "", "schools": [], "lecturers": [], "audience": "", "startTime": "", "endTime": "" }'$ curl -X PUT \
http://localhost:8080/api/v1/lectures/<lectureID> \
-H 'Content-Type: application/json' \
-d '{ "name": "", "schools": [], "lecturers": [], "audience": "", "startTime": "", "endTime": "" }'$ curl -X DELETE \
http://localhost:8080/api/v1/lectures/<lectureID>{
"code": "400",
"errors": [
{ "field": "fieldName", "message": "error message", "value": "entered value" }
]
}$ npm i -progress=false$ npm run seeding$ npm run dev$ npm run prod$ npm run test$ npm run lint