Aplikacja Client-Server || Part 3 || Obsługa wiadomości
🚀

Aplikacja Client-Server || Part 3 || Obsługa wiadomości

notion image
 
 

Wprowadzenie


Moja aplikacja Client-Server powoli nabiera rumieńców. Poprzednio program nie posiadał zbyt dużo funkcjonalnośći. Przygotowałem jedynie prostą logikę obsługi zapytań od Klienta. Projekt zawierał “szkielet” systemu zarządzania użytkownikami, tworząc role "admin" dla pełnego dostępu do danych oraz "user" z dostępem jedynie do własnych danych. Dodałem także metody, które w przyszłości planowałem rozwinąć o funkcję możliwości wysyłania prywatnych wiadomości między użytkownikami systemu. Stworzyłem też opcję serializacji oraz deserializacji danych użytkowników do formatu JSON.

 

Wykonane prace


1. Usprawnienia w zarządzaniu wiadomościami:

  • Nowe metody do obsługi wiadomości w klasach Mail, MailBox, oraz MailServices.
  • Dodanie funkcji wyboru odbiorcy z listy zarejestrowanych użytkowników i wysyłania wiadomości
  • Ulepszenie mechanizmu czytania, pisania, oraz usuwania wiadomości

2. Poprawa zarządzania użytkownikami:

  • Usprawnienie klas User i UserManager do obsługi działań użytkowników
  • Implementacja logiki rejestracji i logowania użytkowników
  • Wprowadzenie funkcjonalności do zarządzania rolami Admin, z odpowiednimi poziomami uprawnień

3. Ulepszenia w obsłudze połączeń klient-serwer:

  • Refaktoryzacja klas Client i Server w celu poprawy logiki komunikacji
  • Uproszczenie mechanizmu połączeń poprzez zmianę logiki obsługi zapytań i odpowiedzi

4. Refaktoryzacja kodu:

  • Wprowadzenie klasy ClientConnection w celu lepszego zarządzania połączeniami
  • Wyizolowanie metod klasy Server dla lepszego porządku i struktury
  • Poprawione logowanie i obsługa wyjątków
  • Dodanie klas do obsługi serializacji i deserializacji danych użytkowników
  • Ulepszona czytelność poprzez zmiany nazw metod i zmiennych oraz usunięcie zbędnych elementów
  • Usunięcie klasy CustomExcepition

Struktura kodu


Pakiet Client oraz Server:

  • Client - odpowiedzialny za nawiązywanie połączenia i komunikację z serwerem
  • Server - nasłuchuje na przychodzące połączenia oraz obsługuje żądania od klientów

Pakiet Mail:

  • Oferuje prosty system pocztowy, który zapewnia funkcjonalności niezbędne do zarządzania mailami, w tym wysyłanie, odbieranie i przechowywanie wiadomości

Pakiet User:

  • Zawiera system zarządzania użytkownikami, w tym funkcje logowania i zarządzania uprawnieniami użytkowników

Pakiet Utils:

  • Zbiór klas pomocniczych, które ułatwiają realizację różnych zadań pomocniczych i wspólnych operacji w całej aplikacji

Pakiet Request:

  • Zbiór klas pomocniczych, które dziedziczą po klasie nadrzędnej Request, które mogą reprezentować zapytania do obsłużenia

Pakiet Request:

  • Zbiór klas pomocniczych, które dziedziczą po klasie nadrzędnej Request, które mogą reprezentować zapytania do obsłużenia
 

Program w akcji


Video preview
 

Repozytorium GitHub


Client-Server-Application
jakubBoneUpdated Sep 2, 2024

Projekt jest w ciągłym rozwoju i planuje dodać więcej funkcji i ulepszeń w przyszłych aktualizacjach

 

Jakie dalsze plany?


1. Zapoznać się z JUnit

2. JUnit5 w IDEA

3. Napisać testy do aktualnego kodu

 
 
 
 
 

Śledź moją aktywność na LinkedIn


 
 
 
 
 

Zapisz się na mój newsletter


👋
Jeśli masz jakieś sugestie lub pytania, proszę napisz do mnie wiadomość: kuba@javampokaze.pl