- Знакомство с проектом
- Настройка проекта
- Написать REST API отдающий статический JSON (ДЗ: API end-point update)
- Получить (AJAX) и отобразить данные (JS + HTML) на клиенте
- Отрендерить шаблоны на сервере
- Подключить стили
- Отобразить данные динамически с помощью шаблонов и jQuery (ДЗ: изменить состояние таска с запросом на сервер, вернуть список всех тасков, обновить только измененные таски в DOM)
- Browserify + Babel + ...
- Начать полноценный SPA на React.js (ДЗ: компонент)
- Закончить SPA (ДЗ: доделать фичи)
- Использовать БД в REST API (ДЗ: запрос к БД)
/api/projects
GETполучить все проекты- ответ
[
{
"id": 1,
"name": "My project",
"tasks": []
}
]POSTсоздать новый проект- запрос
{
"name": "My project"
}- ответ
{
"id": 1,
"name": "My project",
"tasks": []
}/api/projects/{project_id}
GETполучить проект- ответ
{
"id": 1,
"name": "My project",
"tasks": []
}PUTизменить проект- запрос
{
"name": "My awesome project",
"tasks": []
}- ответ
{
"id": 1,
"name": "My awesome project",
"tasks": []
}DELETEудалить проект- ответ
[
{
"id": 1,
"name": "My project",
"tasks": []
}
]/api/projects/{project_id}/tasks
GETполучить все задания в проекте- ответ
[
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": false
}
]POSTсоздать новое задание в проекте- запрос
{
"name": "My task",
"deadline": 1457529375881
}- ответ
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": false
}/api/projects/{project_id}/tasks/{task_id}
GETполучить задание из проекта- ответ
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": false
}PUTизменить задание в проекте- запрос
{
"done": true
}- ответ
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": true
}DELETEудалить задание из проекта- ответ
[
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": false
}
]