Projektowanie aplikacji internetowych — projekt nr 1
Ten projekt realizujecie Państwo indywidualnie. Musicie opracować
specyfikację prostej witryny ze stronami HTML generowanymi na serwerze,
a następnie ją zaimplementować używając narzędzi omawianych na kursie
„Techniki WWW” na pierwszym stopniu studiów.
Specyfikacja ma być plikiem w formacie PDF. Powinna zawierać:
- jednoakapitowy opis tematu, który wybraliście
- funkcjonalność witryny (lista funkcji oferowanych użytkownikom)
- szczegółowy opis danych przetwarzanych na serwerze
- listę głównych endpointów witryny z ich opisami
Opis danych powinien być dostatecznie precyzyjny, aby przeciętny
programista nie miał wątpliwości jak zaprojektować schemat bazy danych, jakie
wartości są dopuszczalne w danej kolumnie a jakie nie, oraz jak rozumieć te
wartości.
Przez „endpoint” rozumiem metodę i zasób. Przykładowe minimalne opisy:
- GET /thread.html?id=N — generuje stronę HTML zawierającą
treść wpisu o identyfikatorze N oraz wszystkie odpowiedzi na ten wpis
- GET /new_post.html — zwraca stronę z pustym formularzem
na treść nowego wpisu, po zatwierdzeniu dane są wysyłane metodą POST na ten
sam URL
- POST /new_post.html — weryfikuje poprawność danych,
zwraca stronę z komunikatem o utworzeniu nowego wpisu lub z formularzem
wypełnionym błędnymi danymi, które użytkownik będzie mógł poprawić
Jednym z celów tego projektu jest sprawdzenie, czy umiecie Państwo
korzystać z podstawowych narzędzi do tworzenia dynamicznych witryn. Co za tym
idzie, dopuszczone są tylko:
- Node.js LTS oraz Express
- Sequelize ze sqlite3 jako sterownikiem bazodanowym
- szablony EJS albo Pug
- (opcjonalnie) biblioteki CSS pozwalające nadać stronom ładny wygląd
Przy ocenianiu projektu znaczenie będzie miała czytelność specyfikacji oraz
jakość i poprawność kodu. Wygląd witryny jest mało istotny, proszę nie tracić
czasu na dodawanie graficznych ozdobników.
Harmonogram projektu:
- 9 marca — rozpoczęcie prac
- 16 marca — oddanie wstępnej wersji specyfikacji
- 30 marca — oddanie finalnej specyfikacji i zaimplementowanej
witryny