|
|
pl:dydaktyka:ztb:2010:projekty:minibus:start [2010/06/01 23:44] ztb2010 |
pl:dydaktyka:ztb:2010:projekty:minibus:start [2019/06/27 15:50] |
====== Ogólnopolska baza połączeń minibusowych ====== | |
Autorzy: **Jakub Gorzała, Łukasz Kowalski** | |
| |
---- | |
===== 1. Sformułowanie zadania projektowego ===== | |
Projekt bazy danych, która będzie wykorzystywana w projekcie z przedmiotu Technologie i programowanie WWW. Projekt ten ma na celu stworzenie portalu zawierającego rozkłady jazdy minibusów z całej polski. | |
| |
| |
===== 2. Analiza stanu wyjściowego ===== | |
W sieci istnieje strona o podobnej tematyce, lecz posiada ona sporo wad. Po pierwsze jest wykonana w bardzo prostej technologii (zwykły html + css), jest nieczytelna przez co prezentuje się bardzo nie atrakcyjnie i nie wzbudza zainteresowania. Nie jest aktualizowana, więc informacje na niej zawarte mogą być mylące dla użytkowników. Strona w głównej mierze jest zbiorem linków do poszczególnych przewoźników, a nie centralnym zbiorem rozkładów, przez co wyszukiwanie interesującego połączenia jest trudne. Storna nie posiada możliwości wystawiania opinii ani komentarzy przewoźnikom, a takie informacje mogły by być przydatne. | |
| |
| |
===== 3. Analiza wymagań użytkownika (wstępna) ===== | |
Główne funkcjonalności portalu: | |
* zarejestrowanie nowej firmy przewozowej + podstawowych informacji adresowych | |
* dodanie kursów oferowanych przez tą firmę | |
* możliwość wyszukiwania kursów filtrując po przystankach z miejscowości A do B | |
* możliwość dodania komentarzy dla poszczególnych firm przez użytkowników | |
* moduł rejestracji użytkowników | |
* dodawanie cen biletów na poszczególnych trasach | |
* powiadomienia mailowe odnośnie nowych przewoźników w regionie bądź zmian w rozkładach jazdy | |
| |
| |
===== 4. Określenie scenariuszy użycia ===== | |
- **Scenariusze dla Użytkownika** | |
- Wyszukanie połączenia: | |
* Wejście na stronę | |
* Przejście na zakładkę 'Szukaj busa' | |
* Wprowadzenie danych przystanku początkowego i końcowego | |
* Podanie godziny odjazdu lub przyjazdu | |
* Uruchomienie wyszukiwania i przeglądnięcie wyników | |
- Założenie konta: | |
* Wejście na stronę | |
* Kliknięci w panel 'Rejestracja!' | |
* Wprowadzenie danych użytkownika | |
* Potwierdzenie założenia konta | |
- **Scenariusze dla Użytkownika posiadającego firmę** | |
- Założenie firmy | |
* Wejście na stronę | |
* Zalogowanie się | |
* Kliknięcie w panel 'Dodaj firmę' | |
* Wprowadzenie nazwy firmy oraz maila firmowego | |
* Potwierdzenie dodania firmy | |
- Wprowadzenie trasy | |
* Wejście na stronę | |
* Zalogowanie się | |
* Wybranie zakładki 'Dodaj linię' | |
* Wprowadzenie kolejnych przystanków, czasów odjazdu oraz cen biletów | |
* Potwierdzenie dodania linii | |
- Zarządzanie trasami | |
* Wejście na stronę | |
* Zalogowanie się | |
* Wybranie zakładki 'Połączenia' | |
* Edycja/usuwanie zdefiniowanych połączeń | |
| |
| |
===== 5. Identyfikacja funkcji ===== | |
Baza danych będzie przechowywać informacje o: | |
* kontach użytkowników | |
* zarejestrowanych firmach | |
* przystankach | |
* zdefiniowanych połączeniach | |
* opiniach o firmie | |
| |
| |
===== 6. Analiza hierarchii funkcji projektowanej aplikacji (FHD – Functional Hierarchy Diagram) ===== | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:fhd.png|}} | |
| |
| |
===== 7. Budowa i analiza diagramu przepływu danych (DFD – Data Flow Diagram) ===== | |
* Level 0 | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:dfd_1.png|}} | |
| |
* Level 1 | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:dfd_2.png|}} | |
| |
* Level 2 - Wyszukiwanie busa | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:dfd_3_1.png|}} | |
| |
* Level 2 - Zarządzanie połączeniami | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:dfd_3_2.png|}} | |
| |
* Level 2 - Dodawanie komentarza | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:dfd_3_3.png|}} | |
| |
| |
===== 8. Wybór encji (obiektów) i ich atrybutów ===== | |
<code> | |
@Entity | |
@Table(name="COMPANIES") | |
@NamedQueries({ | |
@NamedQuery(name="findCompanyByName", query="SELECT c FROM Company c WHERE c.name = :name"), | |
@NamedQuery(name="findCompanyByOwnerName", query="SELECT c FROM Company c WHERE c.owner.name = :name") | |
}) | |
public class Company implements Serializable { | |
| |
private static final long serialVersionUID = 5074588959885714521L; | |
| |
@GeneratedValue(strategy=GenerationType.AUTO) | |
private long companyid; | |
| |
@Column(nullable=false) | |
private String name; | |
| |
@Column(nullable=false) | |
private String mail; | |
| |
@ManyToOne | |
private User owner; | |
| |
@OneToMany(mappedBy="company", targetEntity=Opinion.class, cascade=CascadeType.ALL, fetch=FetchType.EAGER) | |
private Set<Opinion> opinions; | |
| |
@OneToMany(mappedBy="owner", targetEntity=Course.class, cascade=CascadeType.ALL, fetch=FetchType.LAZY) | |
private Set<Course> courses; | |
} | |
| |
</code> | |
| |
===== 9. Projektowanie powiązań (relacji) pomiędzy encjami (ERD) ===== | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:erd.png|}} | |
| |
| |
===== 10. Projekt diagramów STD (State Transition Diagram) ===== | |
* Wyszukiwanie busa | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:std1.png|}} | |
| |
* Dodawanie połączenia | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:std2.png|}} | |
| |
| |
===== <%TUTAJ WPISZ OSTATNIA CYFRE%>. Interfejs użytkownika (podstawowe elementy) ===== | |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:aktualnosci.png|}} | |
| |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:rejestracja.png|}} | |
| |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:profil.png|}} | |
| |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:wyszukiwanie1.png|}} | |
| |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:wyszukiwanie2.png|}} | |
| |
{{:pl:dydaktyka:ztb:2010:projekty:minibus:dodawanie.png|}} | |