Wprowadzenie
Poprzednio rozocząłem projekt od napisania prostego kodu, który umożliwiał podstawową komunikację pomiędzy klasami Client oraz Server. Tym razem, w ramach kolejnego etapu rozwoju aplikacji zaimplemenowałem zarządzania użytkownikami. Powstało kilka funkcjonalności zapewniających większą użyteczność, a także bezpieczeństwo programu. Wprowadziłem zarządzanie użytkownikami z różnicowanymi uprawnieniami oraz opcję wysyłania wiadomości z pewnymi ograniczeniami, o których zaraz opowiem.
Wykonane prace
1. Zaplanowałem zadania do wykonania, oznaczając je jako Issues na GitHubie
2. Wprowadziłem system zarządzania użytkownikami wraz z obsługą uprawnień: admin
(zarządza całą aplikacją) oraz user
(dostęp ograniczony do własnych danych)
3. Opracowałem podstawową logikę do wysyłania i odbierania prywatnych wiadomości (do 255 znaków) pomiędzy użytkownikami. Skrzynka odbiorcza będzie przechowywała maksymalnie 5 nieprzeczytanych wiadomości
4. Dodałem funkcjonalność serializacji oraz deserializacji danych użytkownika. Informacje będą bezpiecznie zapisane w formacie JSON na dysku
5. Nowo utworzone klasy zostały odpowiednio przyporządkowane do konkretnych pakietów
6. Rozpocząłem wdrażanie obsługi wyjątków, co wymaga jeszcze znacznej poprawy
Struktura kodu
Klasy 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 Exceptions
:
- Zawiera początkową logikę niestandardowych wyjątków, umożliwiając lepszą obsługę błędów w aplikacji
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
Klasa Utils
:
- Zbiór klas pomocniczych, które ułatwiają realizację różnych zadań pomocniczych i wspólnych operacji w całej aplikacji
Repozytorium GitHub
Client-Server-Application
jakubBone • Updated Sep 2, 2024
Zapoznaj się aktualnym projektem na GitHubie, do którego regularnie wprowadzam nowe zmiany.
Jakie dalsze plany?
1. Ulepszyć mechanizm przetwarzania danych wejściowych w klasie Client
.
2. Usprawnić mechanizm obsługi żądań klienta w klasie Server
:
- procedury rejestracji oraz logowania,
- procedury wysyłania, odbierania i czytania wiadomości.
3. Udoskonalić i wdrożyć adekwatne zarządzanie wyjątkami.
Ś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