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
, orazMailServices
.
- 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
iUserManager
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
iServer
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
Repozytorium GitHub
Client-Server-Application
jakubBone • Updated 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