Skip to content

kacper1112/bikeRental

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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,

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages