Ćwiczenie: rozbudowa własnej aplikacji
Na podstawie projektu stworzonego w ramach lekcji 9 i zdobytych od tego czasu informacji, możemy stworzyć już całkiem rozbudowaną aplikację webową.
Podsumowanie zdobytych informacji
Od czasu ostatniej pracy nad własnym projektem, do naszego arsenału doszły następujące umiejętności:
- Wykorzystanie cookies do przechowywania danych pomiędzy żądaniami od poszczególnego klienta
- Tworzenie sesji użytkownika
- Tworzenie kont użytkowników i systemu autentykacji
- Autoryzowanie użytkowników do wykonywania akcji w naszej aplikacji
Zadanie
Kontynuując pracę nad swoim projektem, wprowadź do niego wszystkie funkcjonalności z powyższej listy i spróbuj stworzyć aplikację, z której sam potencjalnie chciałbyś korzystać. O ile stworzenie jako tako działającej aplikacji może być stosunkowo proste, o tyle doszlifowanie jej na tyle, żeby była przyjemna w użyciu będzie wymagało więcej pracy, niż się wydaje. Zarezerwuj sobie na ten proces trochę czasu.
Jeżeli poprzednio realizowany projekt nie bardzo nadaje się do dodania do niego powyżej wymienionych funkcjonalności, nic nie stoi na przeszkodzie, żeby zacząć nowy projekt.
Szczegółowe wymagania
Jeżeli przerabiasz te materiały w ramach lekcji ze mną, oto lista szczegółowych wymagań, które powinien spełnić projekt:
- Projekt musi korzystać z frameworku Express
- Aplikacja będzie obsługiwać przynajmniej 3 kombinacje ścieżka+metoda
- Obsługa ścieżki głownej [GET /] jest obowiązkowa
- Aplikacja będzie umożliwiać użytkownikowi wprowadzanie danych przy pomocy formularzy HTML i odbierać dane w żądaniach HTTP POST.
- Dane wprowadzone do aplikacji będą przechowywane w sposób nieulotny w bazie danych
- Aplikacja od strony doświadczenia deweloperskiego umożliwi wypełnienie bazy danych danymi testowymi
- Aplikacja umożliwi użytkownikowi stworzenie konta i zalogowanie się do niej, a także wylogowanie
- Aplikacja będzie wspierać logowanie przy pomocy kombinacji “unikatowy login + hasło”. “Salted hash” hasła będzie przechowywany w bazie danych.
- Część funkcjonalności aplikacji będzie dostępna tylko dla zalogowanych użytkowników
- Aplikacja utworzy konto administratora pozwalające na edycję wszystkich treści na stronie
- Użytkownicy nie będący administratorem będą mieli dostęp do edycji danych wprowadzonych przez siebie
- Użytkownicy nie będący administratorem nie będą mieli dostępu do edycji danych wprowadzanych przez innych użytkowników
- README projektu będzie opisywać sposób konfiguracji i użycia aplikacji
Temat projektu należy wybrać na podstawie własnych zainteresowań i możliwości. Tematyka jest dowolna wyłączając projekty nielegalne w myśl przepisów prawnych obowiązujących w Polsce.
Powodzenia!