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.
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.
Builder
- klasy Bike, Customer — dodawanie opcjonalnych informacji.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.)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.)Singleton
- w implementacji wzorca Factory,Facade
- ograniczenie dostępnych instrukcji dla różnych grup użytkowników (pracownik całość, klient mniej),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,Iterator
- własny iterator do przeglądania wszystkich dostępnych aktualnie rowerów,Adapter
- adaptacja "pretty printera" wypożyczeń do generatora raportów,Data Mapper
- mapowanie obiektów z bazy danych do swoich odpowiedników w aplikacji, zapewnianie podstawowych operacji bazodanowych,Decorator
- dodawanie stałej zniżki klienta do ceny obliczonej już przez odpowiedni kalkulator,