CodeMelodies to elegancka i intuicyjna platforma, stworzona z myślą o rozpowszechnianiu treści związanych z muzyką poważną z okresu baroku i klasycyzmu. Aplikacja ma na celu propagowanie treści przeznaczonych dla pewnej grupy odbiorców. Projekt kładzie nacisk na intuicyjność oraz zwięzłość treści.
Aplikacja CodeMelodies oferuje następujące funkcje:
- 🎵 Galeria Nagrań:
Eksploruj bogatą kolekcję nagrań, prezentującą wyjątkowe interpretacje utworów.
- 📘 Publikacje:
Zapoznaj się z artykułami dotyczącymi różnych aspektów muzyki poważnej, technik gry na flecie i wiele więcej.
- 👥 Profil Artysty:
Poznaj artystkę bliżej, zapoznając się z jej biografią, osiągnięciami i dokumentacją artystyczną w postaci nagrań i zdjęć.
- 📅 Kalendarz Wydarzeń
Bądź na bieżąco z nadchodzącymi koncertami, wydarzeniami i premierami nagrań.
- 💌 Kontakt:
Skontaktuj się bezpośrednio z artystką, zadając pytania lub wyrażając swoje uwagi.
Frontend: Angular:
bash ng new CodeMelodies --routing --skip-git --skip-tests --style css
-
ng new CodeMelodies
- tworzy nowy projekt z zadanymi parametrami: -
--routing
- dodaje moduł routingu do nowoutworzonego projektu -
--skip git
- pomija inicjalizację repozytorium Git dla nowego projektu -
--skip-tests
- pomija generowanie plików specyfikacji testów dla nowego projektu -
--style css
- definiuje technologię stylowania, która ma być używana w projekcie
Wykorzystano też bibliotekę arkusza styli CSS - Bootstrap.
Backend: Spring Framework. Aplikację Springową utworzono przy pomocy Spring Initializr.
Decyzja o wyborze Angulara, Bootstrapa i Springa jako podstawowych technologii dla projektu została podjęta z kilku kluczowych powodów. Przede wszystkim, każdy z tych frameworków posiada silną i stabilną pozycję na rynku, co jest kluczowe dla zapewnienia długoterminowego wsparcia i aktualizacji. Angular jest szczególnie ceniony wśród deweloperów za jego modularność, efektywność i integrację z TypeScript. Z kolei Bootstrap, jako biblioteka CSS, jest powszechnie uznawany za standard w projektowaniu responsywnych i estetycznie atrakcyjnych interfejsów użytkownika. Dzięki gotowym komponentom, Bootstrap pozwala na szybkie tworzenie spójnych i funkcjonalnych interfejsów.
Spring Framework jest jednym z najbardziej kompleksowych rozwiązań dla aplikacji back-endowych w Javie. Oferuje on szerokie możliwości w zakresie tworzenia bezpiecznych, wydajnych i skalowalnych aplikacji serwerowych. Jego adaptacyjność i wsparcie dla różnorodnych architektur sprawiają, że jest on idealnym wyborem dla nowoczesnych aplikacji.
Kluczową jednak rolę w doborze architektury stanowią osobiste zainteresowania autorki projektu.
login-controller
POST
/api/logout
GET
/api/login
you-tube-controller
GET
/api/youtube
kontakt-controller
GET
/api/socialmedia
GET
/api/events
publikacje-controller
GET
/api/publications
GET
/api/publication/{uuid}
obrazy-controller
GET
/api/photosids
GET
/api/photo/{uuid}
GET
/api/icon/{uuid}
o-mnie-controller
GET
/api/about
Zależność springdoc-openapi-starter-webmvc-ui jest elementem integracji dokumentacji API z aplikacjami Spring Boot. Ta zależność, będąca częścią biblioteki SpringDoc, automatycznie generuje dokumentację API zgodną ze specyfikacją OpenAPI 3 na podstawie kodu źródłowego aplikacji. W szczególności analizuje kontrolery Springa, ich metody, parametry i modele danych, tworząc z nich dokładny opis API. Dodatkowo dostarcza interfejs użytkownika Swagger UI, który umożliwia testowanie dokumentacji API bezpośrednio z przeglądarki. Test enpointów możliwy jest pod adresem: http://localhost:8080/swagger-ui/index.html#/:
W przypadku tego projektu do komunikacji warstwy Frontendu z Backendem wykorzystano Rest API. Do testowania Rest API wykorzystano Swagger UI.
Baza danych zawiera wszystkie typy relacji:
- jeden-do-jednego:
- jednej ikonie przynależy jedno social media
- jeden-do-wielu
- jeden plik może zawierać wiele publikacji
- wiele-do-wielu
- wiele wydarzeń może mieć wiele tagów
Jako narzędzie ORM (Object-Relational Mapping), wykorzystano Hibernate. W połączeniu z bazą danych PostgreSQL, stanowi on solidne i wydajne rozwiązanie dla zarządzania warstwą danych. Hibernate ułatwia mapowanie obiektów Java na tabele w bazie danych PostgreSQL, co pozwala na intuicyjne i obiektowe zarządzanie danymi. Dzięki Hibernate, złożoność operacji na bazie danych jest ukryta za prostszym interfejsem, co przekłada się na większą czytelność i łatwość utrzymania kodu.
Dependency odpowiedzialne za dodanie Hibernate'a:
Kopię bazy danych stanowią pliki .sql dostępne w folderze DB. Plik db-init.sql
tworzy bazę danych, natomiast plik insert-dummies.sql
wypełnia bazę odpowiednimi danymi.
Projekt wykorzystuje system kontroli wersji GIT hostowany przez platformę GitHub: https://github.com/WiolaWysopal/CodeMelodies.git
W projekcie wykorzystano mechanizm Basic Autentication, który realizuje poniższa dependencja:
Zależność spring-boot-starter-security jest zależnością Spring Boot, która umożliwia łatwą integrację i konfigurację Spring Security w aplikacji. Spring Security zapewnia bezpieczeństwo aplikacji poprzez uwierzytelnienie i autoryzację użytkowników. Dzięki tej zależności możliwa jest implementacja bezpiecznego logowania i zarządzanie dostępem do różnych części aplikacji. Spring Security wspiera szeroki zakres opcji uwierzytelniania, w tym logowanie oparte na formularzach, a także HTTP Basic Authentication. Umożliwia również definiowanie reguł dotyczących dostępu do zasobów aplikacji, co pozwala na precyzyjne kontrolowanie, który użytkownik ma dostęp do określonych funkcji lub danych w aplikacji.
Autentykacja w projekcie: