Wym
Transkrypt
Wym
Sprawozdanie 1 MEANStack (NodeJS, ExpressJS, mongoose, passport) Oczekuję od Państwa sprawozdania z opisem utworzonego przykładowego projektu. Projekt ma prezentować umiejętność wykorzystania przez Państwa odpowiednich składowych technologii MEANStack (zobacz przykładowy projekt poniżej). Nie musi to być aplikacja w pełni funkcjonalna, do końca działająca, dopracowana i pięknie wyglądająca. Aplikacja ma być dowodem, że Państwo umieją, np. wykorzystać mongoose do obsługi bazy danych czy passport do logowania. Wystarczą dwa, trzy egzemplarze: strony, formularza, funkcjonalności, bardziej rozbudowanego widoku, … Coś w tym stylu. Sprawozdania przysyłamy na adres: [email protected] Załączamy: • sprawozdanie w pliku PDF, • spakowany katalog z projektem, najlepiej zip. Można też podesłać repozytorium git'a. Tytuł: Web2.0 - Nazwisko - Spr 1 Załączniki: Nazwisko.pdf, Nazwisko.zip W samym sprawozdaniu proszę opisać co jest w projekcie: dostępne kolekcje, system szablonów, funkcjonalność. Każda z ocenianych poniżej umiejętności powinna mieć jakiś opis, np. łączenie z bazą danych, tworzenie schematu i dodanie jakiejś metody statycznej albo tworzenie tras z hierarchicznym podziałem na moduły... Jak będą wykorzystane szablony to napisać jakie i wrzucić jakiś przykład. Jak będą inne pakiety to napisać do czego są i gdzie były potrzebne. Myślę, że więcej niż 10 stron sprawozdania, razem z fragmentami kodów źródłowych, nie będzie. Nie będę dokładnie, szczegółowo opisywał jakie mają być punkty sprawozdania. Co dokładnie ma zawierać. Proszę zaprezentować to co zrobiliście, szczególnie te rzeczy, z którymi było ciężko, np. podział wszystkiego na osobne moduły i komunikacja między poszczególnymi elementami, albo skonfigurowanie passport'a... Wymagania do sprawozdania i ocenianie Ocena Wymagania 3.0 Wykorzystanie NodeJS + ExpressJS, podpięcie kilku stron wyświetlających zawartość pod różnymi adresami url, udostępnienie statycznych plików, np. z katalogu public. Generalnie takie rozbudowane „Hello World”. 3.5 Dodanie wykorzystania pakietu mongoose do zbudowania prostego API z czterema podstawowymi operacjami CRUD, wystarczy jedna kolekcja. Dodać jedną stronę z opisem API, żeby użytkownik mógł przeczytać co i gdzie jest dostępne. 4.0 Baza danych z mongoose z wykorzystaniem w projekcie. Dwa formularze dodające coś do bazy, strona z listą danych z kolekcji, jakieś usuwanie danych z listy... Nie trzeba używać tutaj szablonów, można wykorzystać bardzo surowy HTML, 4.5 Wykorzystanie struktury aplikacji otrzymanej z express-generator: podział na moduły (trasowanie, obsługa bazy, inne...), widoki z wykorzystaniem szablonu, np. jade albo jakikolwiek inny. 5.0 Uwierzytelnienie z passport. Osobna kolekcja użytkowników, możliwość zalogowania się i wylogowania, dostęp do pewnych danych tylko dla zalogowanych użytkowników. Każda lepsza ocena wymaga zrobienia wszystkiego co jest wymagana na gorsze oceny. Proszę to zrobić samodzielnie, każdy ile i jak potrafi. Proszę być odważnym i pozwolić sobie poznać samego siebie, nawet jeśli się okażę, że umie się maksymalnie na 4.0. Zasadniczo będę oceniał jak w powyższym opisie ale wybrany z dwóch ostatnich punktów na ocenę 4.5 i 5.0 można zastąpić czymś innym. Tak więc: • można wykorzystać bootstrapa i ładnie zrobić wygląd zamiast np. uwierzytelnienia, • można zrobić Responsive Web Design, • można zamieścić aplikację gdzieś online, np. z użyciem https://www.heroku.com/ i https://mlab.com/ - jak będzie działać to może zastąpić coś z powyższych wymagań żeby i tak uzyskać odpowiednią ocenę, • można zamiast jednej kolekcji zrobić ich kilka i jakieś fajne zapytania do MongoDB zrobić, które będą coś łączyć, wyszukiwać … też powinno być + 0.5 do oceny, • można pokazać wykorzystanie Angular 1.5 razem z API dodanym w tym projekcie, • można wykorzystać sesję, preprocesory CSS, dużo różnych dodatkowych pakietów … Gdyby ktoś chciał wdrożyć swój projekt np. na heroku: https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction Przykładowy projekt Tag Explorer – wersja bardzo beta, i tak zajęło mi to dwa dni... Strona: https://aqueous-anchorage-40559.herokuapp.com/ Skrócony opis projektu: • darmowy hosting NodeJS (i nie tylko): https://www.heroku.com/ • darmowa baza MongoDB: https://mlab.com/ ◦ aplikacja zawiera dwie kolekcje (links i users), ◦ dla celów edukacyjnych i z braku czasu na dopracowywanie, do obu kolekcji jest pełny dostęp przez API, ◦ hasła użytkowników są w postaci skrótów sha1, • NodeJS, • ExpressJS, • mongoose, • szablony jade, a w zasadzie nowsza wersja pug-https://www.npmjs.com/package/pug, ◦ jest kilka plików szablonów, ◦ wykorzystane jest proste dziedziczenie i włączanie innych szablonów – include, • passport, ◦ tylko do logowania się ◦ zalogowany ma dostęp do dodatkowej funkcjonalności (dodawanie własnych odnośników i lista użytkowników w kolekcji) • jest podział na moduły, widoki, jakiś prowizoryczny styl w CSS