Online Store System to system sklepu internetowego, umożliwiający dodawanie produktów do bazy, składanie zamówień, aktualizacje bazy danych, dodawanie produktów do koszyka oraz generowanie faktury.
Projekt stworzony w oparciu o wzorzec MVC. Modelem są klasy modelu danych takie jak np. Product (oraz klasy po nim dziedziczące), ShoppingCart, Order, Client itp. Kontrolerem są klasy logiki biznesowej, czyli te, które operują na encjach i zazwyczaj mają "manager" w nazwie. Widokiem jest klasa CommandLineInterface, która umożliwia interakcję z użytkownikiem.
Product.java- główna klasa modelu danych dla innych klas po niej dziedziczących. Typ dziedziczenia został ustawiony naJOINED, co pozwala na przechowywanie wszystkich typów produktów w jednej tabeli, a dodatkowe pola umieszczone są w dodatkowych tabelach.Client.java- klasa modelu danych przechowująca dane o użytkowniku. Klient ma przypisany tylko jedenShoppingCart.java.ShoppingCart.java- klasa modelu danych przechowująca informacje o właścicielu oraz produktach w nim się znajdujących.Order.java- klasa modelu danych, przechowuje niezbędne dane o zamówieniu.AsyncConfig.java- klasa stworzona w celu ustawienia 20 wątków do wykorzystania.Discount.java- klasa modelu danych ułatwiająca wprowadzanie rabatów itp.
InvoicePdfSaver.saveInvoiceToPdf- metoda zapisująca fakturę za zamówienie w postaci PDF. Metoda wykorzystuje bibliotekęorg.apache.pdfbox.OrderService.placeOrder- metoda odpowiedzialna za złożenie zamówienia. Wykorzystuje parę metod będących detalami implementacyjnymi, które służą m.in. do zmniejszenia ilości produktu w bazie po jego zakupie oraz opróżnieniu koszyka klienta.OrderProcessor.processOrder- metoda odpowiedzialna za przetwarzanie zamówień asynchronicznie i wielowątkowo, czyli nie blokuje głównego wątku.CommandLineInterface.start()- odpowiada za uruchomienie widoku aplikacji.
Projekt został stworzony w sposób umożliwiający jego łatwą skalowalność i dalszy rozwój.