Skip to content

NotZetka/PrimeEngineering

Repository files navigation

PrimeEngineering

Przegląd

Aplikacja jest zaprojektowana do zarządzania zadaniami w organizacji. Wszystkie zapytania do API sa autoryzowane co gwarantuje, że menedżer nie ma dostepu do endpointów przeznaczonych dla pracowników i odwrotnie. Przy tworzeniu bazy zasosowlem podejście code first, przy uruchomieniu aplikacji, jesli baza danych nie istnieje, zostanie automatycznie utworzona i wypełniona danymi początkowymi, w tym dwoma pracownikami oraz menedżerem. Aby odpalić aplikację należy najpierw odpalić API w visual studio a następnie klienta. Pod adresem https://localhost:5001/swagger dostepna jest dokumentacja wszsytkich endpointów. Endpoint login Accounts/Login zwraca token który można wykorzystać dalej do autoryzacji i autentykacji.

Dane do logowania

Poniższe dane logowania mogą być użyte do uzyskania dostępu do aplikacji:

  1. Manager:
  2. Pracownik 1:
  3. Pracownik 2:

Hasło dla wszystkich użytkowników: Test.123

Funkcjonalności

Widok Menedżera

Po zalogowaniu się jako menedżer, zostaniesz przeniesiony do widoku menedżera. Menedżer posiada następujące możliwości:

  • Rejestrowanie nowych pracowników
  • Podgląd listy zadań dla każdego pracownika
  • Przeglądanie statystyk z podziałem na miesiące

Widok Pracownika

Po zalogowaniu się jako pracownik, zostaniesz przeniesiony do widoku pracownika. Pracownik posiada następujące możliwości:

  • Tworzenie nowych zadań
  • Przeglądanie zadań, w których jest kontrybutorem
  • Edytowanie zadań, oznaczanie zadań jako skończone oraz dodawanie kontrybutorów do zadań, w których uczestniczy

Struktura rozwiązania

Rozwiązanie jest podzielone na trzy projekty: API, Klient oraz Testy.

API (ASP.NET)

  • Baza danych: SQLServer zarządzany za pomocą EntityFramework.
  • Wzorce projektowe pomagające w obsłudze bazy: Unit Of Work oraz Repository.
  • Autentykacja i autoryzacja: Token JWT Bearer.
  • Wzorzec Mediator: Zaimplementowany przy użyciu biblioteki MediatR.
  • Logowanie: Serilog do logowania błędów i informacji, wyświetlający informacje do konsoli oraz zapisujący je do pliku.
  • Obsługa błędów: Middleware do automatycznego przechwytywania i obsługi błędów.
  • Walidacja zapytań: Middleware do automatycznej walidacji zapytań.

Klient (WinForms)

  • Aplikacja kliencka została zbudowana przy użyciu WinForms.

Testy

  • Testy jednostkowe: Wykorzystując biblioteki XUnit i Moq.
  • Testy integracyjne: Dodatkowo wykorzystując bibliotekę MVC.Testing.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages