Skip to content

Projekt finałowy, wykonany przez uczestników kursu CodersCamp.pl - Edycja VI (Rok 2020), potwierdzający nabyte umiejętności z zakresu programowania w języku TypeScript, programowania serwera API w środowisku Node, oraz tworzenia aplikacji webowych z wykorzystaniem ekosystemu React.

Notifications You must be signed in to change notification settings

CodersCamp2020-HK/CodersCamp2020.Project.FullStack-Node-React

Repository files navigation

CodersCamp 2020 | Projekt zespołowy | FullStack — Node.js + React | Strona schroniska dla zwierząt

logo

Zespół projektowy

Zespół pracował w ramach kursu CodersCamp. Aplikację wykonali uczestnicy kursu przy pomocy mentora. Zachęcamy do odwiedzenia profili członków zespołu, w celu zapoznania się z ich portfolio.

Mentor: Hubert Kawałek

Uczestnicy:

Demo

Wersja demonstracyjna aplikacji jest dostępna TUTAJ.

Opis REST API aplikacji jest dostępny TUTAJ.

Front-end aplikacji znajduje się tutaj: TUTAJ.

Aplikacja została wykonana wg dostarczonych przez organizatorów CodersCamp wymagań. Szablon projektu dostępny jest TUTAJ.

Cel projektu

Celem projektu było napisanie w pełni funkcjonalnego REST API wykorzystując dotychczas nabytą wiedzę z następujących technologi: html, css, javascript, typescript, nodejs, reactjs.

Zespół projektowy zdecydował się na stworzenie aplikacji schroniska dla zwierząt o nazwie Złapki. Aplikacja ma na celu usprawnienie działania schroniska dla zwierząt zarówno od strony osoby chcącej zaadoptować zwierzę jak i od strony pracowników schroniska, którzy zajmują się obsługą wniosków adopcyjnych i stanem zwierząt w schronisku.

Główne funkcjonalności

  • Wyszukiwanie i filtrowanie zwierząt gotowych do adopcji (Każdy użytkownik)
  • Wysyłanie formularzy adopcyjnych (Osoba zalogowana do schroniska)
  • Obsługa bazy zwierząt (Pracownik schroniska)
  • Rozpatrywanie wniosków adopcyjnych (Pracownik schroniska)

Projekt graficzny

Utowrzony został szablon graficzny aplikacji w programie Figma.

Link do Figmy

Wymagania funkcjonalne (szczegółowo):

Rejestracja/Logowanie:

  1. Użytkownik ma możliwość zarejestrować się w systemie, podając imię, nazwisko, hasło, powtórzone hasło, telefon, datę urodzenia i adres e-mail.
  2. Użytkownik ma możliwość zalogować się w systemie, podając adres e-mail i hasło.
  3. Użytkownik otrzymuje wiadomość mailową z informacją o założeniu konta i linkiem aktywacyjnym.
  4. Użytkownik ma możliwość zresetować swoje hasło do konta i ustawienia nowego, używając linka wysłanego na jego adres e-mail.
  5. Użytkownik ma możliwość zmiany swoich danych.
  6. Użytkownik ma możliwość wylogowania się.
  7. Użytkownik ma możliwość usunięcia konta.

Wyszukiwanie zwierząt:

  1. Użytkownik może przeglądać wszystkie zwierzęta znajdujące się w schronisku i czekające na adopcje.
  2. Użytkownik może ustawić filtry wyszukiwania, które pozwolą mu wybrać zwierzęcie takie jakie poszukje i pasujące do jego stylu życia.
  3. Użytkownik może zapoznać się ze wszystkimi informacjami na temat wybranego zwierzęcia- szczegółowa karta zwierzecia z przeglądaniem galerii zdjęć.

O schronisku:

  1. Na stronie internetowej można znaleźć informację na temat dokładnego procesu adopcyjnego zwierzęcia.
  2. Na stronie internetowej można przeczytać informacje na temat schroniska Złapki i zespołu je tworzącego.
  3. Na stronie internetowej można znaleźć informacje kontaktowe do schroniska, wraz z mapą oznaczającą dokładne położenie schroniska.

Wniosek adopcyjny:

  1. Użytkownik po zalogowaniu sie na konto może złożyć wniosek adopcyjny na jedno wybrane zwierzę.
  2. Użytkownik może cały czas obserwować na jakim etapie procesu adopcyjnego znajduje się jego wniosek (Stepper)
  3. Użytkownik może wypełnić formularz adopcyjny, różny dla pasa i kota.
  4. Użytkownik ma wgląd w wysłany formularz adopcyjny.
  5. Użytkownik po zaakceptowaniu wniosku przez pracownika schroniska może wybrać datę i godzinę obowiązkowego spotkania w schronisku (musi wybrać datę w przeciągu 2 tygodni od zaakceptowania jego wniosku przez pracownika).
  6. Użytkonwik przy każdej zmianie statusu wniosku zostaje powiadomiony mailowo.
  7. Użytkownik zostaje powiadomiony mailowo, jeżeli jego wniosek nie został rozpatrzony pozytywnie lub gdy zwierzę zostało zaadoptowane przez inną osobę.

Wniosek o zostanie wolontariuszem:

  1. Użytkownik po zalogowaniu sie na konto może złożyć wniosek o zostanie wolontariuszem.
  2. Użytkownik może cały czas obserwować na jakim etapie znajduje się jego wniosek (Stepper)
  3. Użytkownik może wypełnić formularz o zostanie wolontariuszem.
  4. Użytkownik ma wgląd w wysłany formularz o zostanie wolontariuszem.

Zarządzanie bazą zwierząt:

  1. Pracownik schroniska ma możliwość dodawania zwierząt do bazy zwierząt (razem z załączeniem zdjęć zwierząt).
  2. Pracownik schroniska ma możliwosć uaktualniania informacji o zwierzęciu.
  3. Pracownik schroniska ma możliwość usuwania zwierzęcia z bazy zwierząt.
  4. Pracownik schroniska ma możliwość filtrowania zwierząt w bazie.

Zarządzanie wnioskami o adopcje:

  1. Pracownik schroniska ma wgląd we wszystkie wnioski adopcyjne.
  2. Pracownik schroniska może filtrować wnioski adopcyjne.
  3. Pracownik schroniska może przeglądać wnioski adopcyjne przypisane do zwierzęcia.
  4. Pracownik schroniska ma wgląd w wypełniony formularz adopcyjny, informacje o użytkowniku składającym formularz i o zwierzęciu, na który został złożony wniosek.
  5. Pracownik schroniska może zaakaceptować albo odrzucić wniosek.
  6. Pracownik schroniska może potwierdzić zaadoptowanie zwierzęcia.

Zarządzanie wnioskami o adopcje:

  1. Pracownik schroniska ma wgląd we wszystkie wnioski o zostanie wolontariuszem.
  2. Pracownik schroniska może filtrować o zostanie wolontariuszem.
  3. Pracownik schroniska ma wgląd w wypełniony formularz wolontariusza i w informacje o użytkowniku składającym formularz.
  4. Pracownik schroniska może zaakaceptować albo odrzucić wniosek.

Wykorzystywane technologie

W trakcie developmentu wykorzystujemy:

  • NodeJS
  • Swagger
  • Tsoa
  • Docker
  • Heroku
  • TypeORM
  • PostgreSQL
  • GitHub workflow
  • React JS
  • React Router
  • Restful React
  • React Hook Form
  • Material UI

Development aplikacji

Przykładowa funkcjonalność bazy danych aplikacji

apiheroku

Schemat bazy danych

Uruchomienie projektu

Aby uruchomić aplikację na lokalnej maszynie, wykonaj następujące kroki:

  1. Zainstaluj zależności za pomocą komendy: npm ci
  2. Uruchom kontenery z bazą danych oraz narzędziem pgAdmin: docker-compose up
  3. Wystartuj serwer developerski npm run dev

Aplikacja będzie dostępna pod adresem localhost:3000/, natomiast API pod adresem localhost:8000/

Kod produkcyjny aplikacji umieszczamy w katalogu build.

Uruchomienie testów

Aby uruchomić testy aplikacji, wykonaj następujące kroki:

  1. Zainstaluj zależności za pomocą komendy: npm ci (jeśli nie zrobiłeś już tego wcześniej).
  2. Uruchom wszystkie testy, wykonując komendę: npm run test.

Dostępne są także testy tylko dla serwera npm run server:test, dla testów z pokryciem kodu npm run server:test:cov. Testy tylko dla aplikacji webowej npm run web:test, dla testów z pokryciem kodu npm run web:test:cov. Kod testów umieszczamy w katalogu test.

Organizacja pracy

Praca zespołu była organizowana przy użyciu narzędzi dostarczanych przez GitHub. Zadania opisywaliśmy za pomocą GitHub Issues i dzieliśmy czas ich wykonania na tygodnie za pomocą GitHub Projects. Każde z zadań było estymowane przez mentora, dzięki czemu staraliśmy się, aby liczba punktów przypadająca w danym tygodniu na każdą osobę w zespole była podobna.

About

Projekt finałowy, wykonany przez uczestników kursu CodersCamp.pl - Edycja VI (Rok 2020), potwierdzający nabyte umiejętności z zakresu programowania w języku TypeScript, programowania serwera API w środowisku Node, oraz tworzenia aplikacji webowych z wykorzystaniem ekosystemu React.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages