Skip to content

KartonM/databases2020-project

Repository files navigation

System zarządzania hurtownią warzyw i owoców

Wykorzystana technologia

Aplikacja zbudowana jest przy użyciu frameworka ASP.NET Core. Baza danych (MS SQL) stworzona została przy użyciu Entity Framework Core i podejścia "Model First". Frontend aplikacji został zrealizowany w oparciu o Razor Views.

Schemat bazy danych

Schemat bazy danych wygenerowanej na podstawie modelu. Tabela Companies zawiera zarówno informacje o firmach-klientach, jak i firmach-dostawcach, z którymi współpracujemy (strategia TPH obsługi dziedziczenia). Zdecydowaliśmy się na przechowywanie aktualnej ilości produktu w tabeli Products (KgsInStock) i jej aktualizację przy każdej dostawie i sprzedaży, ponieważ uznaliśmy, że z czasem przy wielu zarejestrowanych dostawach i sprzedażach w systemie, często wykonywana operacja wyliczania tej ilości byłaby zbyt kosztowna. schemat

Struktura aplikacji

Wartwa persystencji danych

Klasy, na podstawie których generowana są tabele znajdują się w folderze Models. Baza definiowana jest na podstawie klasy ApplicationDbContext, gdzie zadeklarowane są tabele oraz dodatkowo opisane są tabele łącznikowe używane przy relacjach M-N oraz strategia dziedziczenia w przypadku firm-dostawców i firm-klientów. We wszystkich operacjach na danych pośredniczy klasa Repository, dostarczana do innych klas przez mechanizm Dependency Injection skonfigurowany w pliku Startup.cs.

Logika aplikacji i wartwa widoku

W aplikacji został zasotosowany pattern MVC. Poza wspomnianymi wyżej klasami Modelu mamy też jeden Controller (HomeController) oraz widoki Razor Views znajdujące się w folderze Views/Home. Do komunikacji między Controllerem a widokami w niektórych przyapdkach wykorzystywane są również klasy znajdujące się w folderze ViewModels

Opis funkcjonalności:

-dodawanie kategorii produktu
-dodawanie klientów
-dodawanie i tworzenie nowych faktur
-dodawanie produktów
-dodawanie dostawców
-przeglądanie statystyk:
•bilans miesięczny, tygodniowy
•najaktywniejsi klienci(tygodniowo, miesięczie)
•przegląd zalegających produktów
•wykaz brakujących produktów
•wartość produktu w magazynie
-tworzenie dostaw

Przewodnik po kodzie

-dodanie kategorii:
Widok AddCategory.cshtml zwracany przez Controller HomeController

AddCategory.cshtml

Kod w HomeController obsługujący ten widok. Umożliwia wykonanie odpowiedniej metody z Data/Repository.cs.

HomeController.cs

Za pośrednictwem RepositoryRepository.cs pobieramy z bazy danych wszystkie kategorie i dostawców, aby użytkownik tworząc produkt mógł wybrać ich z listy

AddCategory Repository

Contributors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published