-
Notifications
You must be signed in to change notification settings - Fork 11
Homeworks
Задачите трябва да бъдат демонстрирани пред преподавателя по време на упражнения. За отлична оценка на задачата е необходимо да съберете поне 35 точки.
ВАЖНО: Всички решения трябва да са изцяло авторски. Сходните решения на задачите се анулират!
(5% от крайната оценка)
Да се реализира клиентско (браузър) приложение без презареждане на страницата Single Page Application (SPA) с JS/TS библиотеката Angular. Приложението трябва да реализира следната функционалност:
- Въвеждане на нов блог пост (10 точки):
- дата на публикуване;
- заглавие;
- автор;
- текст - с поддръжка на Markdown;
- ключови думи - tags;
- URL на изображение (незадължително);
- статус - активен (по подразбиране) или неактивен.
- Извеждане на последните 15 блог поста, с възможност за филтриране по статус на поста, в съкратен (summary) формат (до 150 символа), сортирани (обратно - descending) по дата на публикуване (10 точки).
- Извежда списък на всички публикации, като до всяка публикация се извеждат бутон за редактиране и бутон за изтриване на публикацията, който да активира съответната функционалност (редактиране в нов изглед - view или изтриване) (10 точки).
- Рутиране между отделните изгледи (views) описани в предишните точки (10 точки).
(5% от крайната оценка)
Да се реализира с Node.js (евентуално + Express.js) уеб услуга в стил Representational State Transfer (REST API) за клиентското (браузър) приложение от Задача 1: Simple Blogging. Реализираната REST API уеб услуга следва да предлага Create-Read-Update-Delete (CRUD) функционалност за блог постовете от Задача 1. Реализацията трябва да бъде съобразена с препоръките и изискванията на REST архитектурния стил и HTTP 1.1 стандарта на W3C, както и препоръките за реализация на REST ресурси, разгледано по-време на лекции. Ето някои (неизчерпателни) упътвания:
- Реализирайте collection level resource: /api/posts, към който отиват collection GET (GET all posts) и POST заявките. В отоговор на POST заявка следва REST endpoint-a да върне HTTP статус: 201 Created с header Location, който да връща individual level resource URI на новосъздадения ресурс - напр: /api/posts/16, ако новият ресурс има ID=16. (15 точки)
- Реализирайте individual level resource: /api/posts/:postId, към който отиват read (GET), update (PUT) и delete (DELETE) заявките. (15 точки)
- Не забравяйте да върнете подходящ статус код при възникване на грешка към уеб клиента, в зависимост от вида на грешката (4XX или 5XX). (10 точки)