Skip to content
/ fastdo Public

Project and task managment app using NestJS, Angular and PostgreSQL.

Notifications You must be signed in to change notification settings

vertyll/fastdo

Repository files navigation

Założenia projektu

Aplikacja internetowa słuząca do zarządzania projektami i zadaniami do danego projektu. Aplikacja składa się z monorepo, w którym mamy do dyspozycji oddzielny back-end jak i front-end.

Stos technologiczny

Back-end:

  • NestJS
  • Fastify
  • TypeORM
  • PostgreSQL
  • Jest
  • OpenAPI (Swagger)

Front-end:

  • Angular
  • RxJS
  • NGXS
  • Tailwind CSS

Uwierzytelnianie:

  • uwierzytelnianie za pomocą JWT - aplikacja korzysta z tokenów JWT do uwierzytelniania użytkowników i posiada mechanizm odświeżania tokenów
  • aplikacja pozwala na logowanie na wiele urządzeń jednocześnie

Core back-end:

  • aplikacja posiada mechanizm obsługi wyjątków
  • aplikacja posiada mechanizm logowania
  • aplikacja jest w pełni przetłumaczona na język angielski i polski
  • aplikacja posiada mechanizm wysyłania maili, osobno dla dev i prod (wzorzec strategii)
  • aplikacja posiada mechanizm obsługi plików (wzorzec strategii)
  • aplikacja posiada mechanizm obsługi zadań cyklicznych (cron)
  • aplikacja posiada wydzielone środowiska dla dev i prod
  • aplikacja posiada wydzielony plik konfiguracyjny
  • aplikacja posiada RBAC (Role Based Access Control)
  • aplikacja posiada CLS (Continuation Local Storage)
  • napisano dokumentację API za pomocą OpenAPI (Swagger)
  • i wiele innych funkcjonalności, które można znaleźć w kodzie aplikacji

Core front-end:

  • aplikacja posiada system zarządzania stanem za pomocą NGXS
  • aplikacja jest w pełni przetłumaczona na język angielski i polski
  • komponenty są w pełni re-używalne, były pisane zgodnie z zasadami DRY oraz użyto metodologii Atomic Design
  • aplikacja pisana zgodnie z nowymi standardami Angulara - użyto m.in. sygnały
  • i wiele innych funkcjonalności, które można znaleźć w kodzie aplikacji

Inne:

  • Turborepo w celu automatyzacji skryptów i zarządzania strukturą monorepo
  • ESLint i Dprint do statycznej analizy kodu i utrzymania jednolitej jakości kodu
  • Docker dla środowiska deweloperskiego

Podczas pisania aplikacji stosowano zasady SOLID, DRY, composition over inheritance, dependency injection, wzorce projektowe, wzorce architektoniczne, pisano testy oraz przyjęto inne dobre praktyki programistyczne.

Zdjęcia poglądowe

Widok projektu Widok projektu Widok projektu Widok projektu Widok projektu Widok projektu

Instrukcja instalacji projektu

  • Pobieramy projekt na lokalne środowisko
  • wykonujemy:
pnpm install
# or
npm install

Uwaga: w tym momencie zainstalują się wszystkie zalezności potrzebne do uruchomienia projektu oraz stworzą się dla nas pliki .env w strukturze back-endu

  • W utworzonych plikach .env definiujemy swoje własne klucze API i dane konfiguracyjne.
  • W strukturze front-endu definiujemy adres naszego API w pliku enviroment.ts

Jeżeli chcemy uruchomić projekt lokalnie, to:

  • Sprawdzamy czy mamy uruchomioną bazę danych, projekt korzysta z bazy danych PostgreSQL
  • wykonujemy:
pnpm run dev
# or
npm run dev

Jeżeli chcemy uruchomić projekt w kontenerach Docker, to:

  • kopiujemy plik .env.docker.dev.example do .env w głównym katalogu projektu
  • wykonujemy:
docker-compose -f docker-compose.dev.yml --env-file .env up -d

Domyśnie, jeżeli użyjemy jednej z powyższych ścieżek, to:

Adresy wklejamy do przeglądarki internetowej.

About

Project and task managment app using NestJS, Angular and PostgreSQL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages