Skip to content

Latest commit

 

History

History
43 lines (37 loc) · 2.44 KB

README.md

File metadata and controls

43 lines (37 loc) · 2.44 KB

Bike Rental

Główne założenia

Celem projektu jest stworzenie aplikacji umożliwiającej prowadzenie wypożyczalni rowerów i sprzętu rowerowego. Aplikacja ma służyć zarówno obsłudze wypożyczalni, jak i klientom. Podstawowe funkcjonalności z perspektywy:

  • administratora:
    • dodawanie nowych pracowników do bazy,
  • pracownika:
    • dodawanie nowego sprzętu do bazy,
    • dodawanie nowych klientów do bazy,
    • wyszukiwanie klientów po słowach kluczowych,
    • rejestracja wypożyczeń (jeden lub więcej rowerów i sztuk sprzętu na użytkownika),
    • rejestracja uszkodzeń sprzętu podczas wypożyczenia,
    • generowanie kodów zniżkowych,
    • generowanie raportów za dany okres działalności (przychody),
  • klienta:
    • przeglądanie dostępnych rowerów i sprzętu,
    • składanie prośby o rezerwację,
    • korzystanie z kodów zniżkowych przy składaniu rezerwacji,
    • wyszukiwanie sprzętu po słowach kluczowych, kategoriach.

Implementacja

Nie planuję tworzenia graficznego interfejsu użytkownika, dostęp do programu będzie możliwy poprzez polecenia tekstowe.

Projekt będzie zrealizowany w języku Java z pomocą bazy danych PostgreSQL.

Wykorzystywane wzorce projektowe

  1. Builder - klasy Bike, Customer — dodawanie opcjonalnych informacji.
  2. Strategy - wybieranie odpowiedniego sposobu wyliczania należności za wynajem (czy rower + akcesoria, czy samo akcesorium, czy obowiązuje zniżka, czy wypożyczenie w święto itd.)
  3. Factory - połączenie z bazą danych (łatwe przejście pomiędzy np. bazą testową w H2 a produkcyjną w PostgreSQL, bazą zapasową w SQLite itp.)
  4. Singleton- w implementacji wzorca Factory,
  5. Facade - ograniczenie dostępnych instrukcji dla różnych grup użytkowników (pracownik całość, klient mniej),
  6. Chain of responsibility - przy wysyłaniu powiadomień o zbliżającym się terminie zakończenia wypożyczenia, mail -> telefon -> "ręczne powiadomienie", w zależności od podanych przez klienta informacji,
  7. Iterator - własny iterator do przeglądania wszystkich dostępnych aktualnie rowerów,
  8. Adapter - adaptacja "pretty printera" wypożyczeń do generatora raportów,
  9. Data Mapper - mapowanie obiektów z bazy danych do swoich odpowiedników w aplikacji, zapewnianie podstawowych operacji bazodanowych,
  10. Decorator - dodawanie stałej zniżki klienta do ceny obliczonej już przez odpowiedni kalkulator,