Skip to content

Homeworks

Trayan Iliev edited this page Jun 2, 2019 · 2 revisions

Table of Contents

Homework Problems (Задачи за домашно)

Задачите трябва да бъдат демонстрирани пред преподавателя по време на упражнения. За отлична оценка на задачата е необходимо да съберете поне 35 точки.

ВАЖНО: Всички решения трябва да са изцяло авторски. Сходните решения на задачите се анулират!

Задача 1: Simple Blogging

(5% от крайната оценка)

Да се реализира клиентско (браузър) приложение без презареждане на страницата Single Page Application (SPA) с JS/TS библиотеката Angular. Приложението трябва да реализира следната функционалност:

  1. Въвеждане на нов блог пост (10 точки):
    • дата на публикуване;
    • заглавие;
    • автор;
    • текст - с поддръжка на Markdown;
    • ключови думи - tags;
    • URL на изображение (незадължително);
    • статус - активен (по подразбиране) или неактивен.
  2. Извеждане на последните 15 блог поста, с възможност за филтриране по статус на поста, в съкратен (summary) формат (до 150 символа), сортирани (обратно - descending) по дата на публикуване (10 точки).
  3. Извежда списък на всички публикации, като до всяка публикация се извеждат бутон за редактиране и бутон за изтриване на публикацията, който да активира съответната функционалност (редактиране в нов изглед - view или изтриване) (10 точки).
  4. Рутиране между отделните изгледи (views) описани в предишните точки (10 точки).
Максимален брой точки: 40.

Задача 2: REST API for Simple Blogging

(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 ресурси, разгледано по-време на лекции. Ето някои (неизчерпателни) упътвания:

  1. Реализирайте 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 точки)
  2. Реализирайте individual level resource: /api/posts/:postId, към който отиват read (GET), update (PUT) и delete (DELETE) заявките. (15 точки)
  3. Не забравяйте да върнете подходящ статус код при възникване на грешка към уеб клиента, в зависимост от вида на грешката (4XX или 5XX). (10 точки)
Максимален брой точки: 40.
Clone this wiki locally