From 9c402dc05e7c7ed92040588aaf448b5baf083c48 Mon Sep 17 00:00:00 2001 From: Igor Barcik Date: Tue, 28 Apr 2026 13:55:05 +0200 Subject: [PATCH] docs(readme): standardize bullet format and improve spacing --- README.md | 93 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 98b9b0b..a513432 100644 --- a/README.md +++ b/README.md @@ -6,70 +6,78 @@ --- ### Cel zadania + Stworzenie webowej aplikacji komunikacyjnej inspirowanej platformą Discord. Aplikacja umożliwia komunikację w czasie rzeczywistym, zarządzanie rolami i uprawnieniami oraz udostępnia interfejs responsywny. ### Wymagania funkcjonalne + 1. **System użytkowników** - - Rejestracja (login, email, hasło) - - Logowanie i wylogowanie - - Walidacja (unikalny login i email, siła hasła) - - Edycja profilu (awatar, opis) + * Rejestracja (login, email, hasło) + * Logowanie i wylogowanie + * Walidacja (unikalny login i email, siła hasła) + * Edycja profilu (awatar, opis) 2. **Role i uprawnienia** (minimum 3 role) - - *Administrator* – pełny dostęp, zarządzanie użytkownikami i kanałami - - *Moderator* – zarządzanie wiadomościami, blokowanie użytkowników - - *Użytkownik* – wysyłanie wiadomości, korzystanie z kanałów - - Dynamiczne przypisywanie ról, egzekwowanie uprawnień w backendzie + * *Administrator* – pełny dostęp, zarządzanie użytkownikami i kanałami + * *Moderator* – zarządzanie wiadomościami, blokowanie użytkowników + * *Użytkownik* – wysyłanie wiadomości, korzystanie z kanałów + * Dynamiczne przypisywanie ról, egzekwowanie uprawnień w backendzie 3. **Komunikacja** - - Kanały publiczne/grupowe: tworzenie, dołączanie, historia wiadomości - - Wiadomości prywatne (DM) między dwoma użytkownikami - - Obsługa czasu rzeczywistego (WebSocket, np. Django Channels + PostgreSQL) + * Kanały publiczne/grupowe: tworzenie, dołączanie, historia wiadomości + * Wiadomości prywatne (DM) między dwoma użytkownikami + * Obsługa czasu rzeczywistego (WebSocket, np. Django Channels + PostgreSQL) 4. **Multimedia** - - Wiadomości tekstowe, obrazy, nagrania audio (pliki dźwiękowe) + * Wiadomości tekstowe, obrazy, nagrania audio (pliki dźwiękowe) 5. **Moderacja** - - Blokowanie użytkowników, usuwanie wiadomości - - (Opcjonalnie) zgłaszanie wiadomości/użytkowników + * Blokowanie użytkowników, usuwanie wiadomości + * (Opcjonalnie) zgłaszanie wiadomości/użytkowników 6. **Funkcje dodatkowe (mile widziane)** - - Status online/offline, powiadomienia o nowych wiadomościach - - Wyszukiwanie użytkowników/kanałów, emoji/reakcje + * Status online/offline, powiadomienia o nowych wiadomościach + * Wyszukiwanie użytkowników/kanałów, emoji/reakcje ### Frontend + - Interfejs inspirowany Discordem (responsywny) -- Wykorzystanie frameworka Bootstrap -- Estetyczne formularze logowania i rejestracji (gotowe szablony CSS) -- Obsługa WebSocket po stronie klienta (np. JavaScript) +* Wykorzystanie frameworka Bootstrap +* Estetyczne formularze logowania i rejestracji (gotowe szablony CSS) +* Obsługa WebSocket po stronie klienta (np. JavaScript) ### Backend + - Framework: **Django** (zalecane rozszerzenia: Django REST Framework, Django Channels) -- WebSocket do komunikacji w czasie rzeczywistym (z użyciem PostgreSQL jako warstwy kanałów – `channels_postgres`) -- Obsługa przesyłania plików (obrazy, audio) -- Własna strona błędu 404 i 500 +* WebSocket do komunikacji w czasie rzeczywistym (z użyciem PostgreSQL jako warstwy kanałów – `channels_postgres`) +* Obsługa przesyłania plików (obrazy, audio) +* Własna strona błędu 404 i 500 ### Środowisko uruchomieniowe – **kontenery Docker** + Aplikacja nie wymaga hostowania na zewnętrznych platformach. Całość musi być gotowa do uruchomienia w kontenerach za pomocą **Docker** i **Docker Compose**. Pliki wymagane w repozytorium: -- `Dockerfile` – budujący obraz aplikacji Django (wraz z zależnościami, np. z pliku `requirements.txt`) -- `docker-compose.yml` – definiujący wszystkie usługi niezbędne do działania systemu, co najmniej: - - `web` – serwer Django (z obsługą ASGI np. Daphne/Uvicorn dla WebSocket) - - `db` – baza danych PostgreSQL - - `db` – baza danych PostgreSQL (używana również jako warstwa kanałów dla Django Channels via `channels_postgres`) -- Plik `.env` lub komentarze w `docker-compose.yml` wskazujące, jak skonfigurować zmienne środowiskowe (np. `SECRET_KEY`, dane dostępowe do bazy) +* `Dockerfile` – budujący obraz aplikacji Django (wraz z zależnościami, np. z pliku `requirements.txt`) +* `docker-compose.yml` – definiujący wszystkie usługi niezbędne do działania systemu, co najmniej: + * `web` – serwer Django (z obsługą ASGI np. Daphne/Uvicorn dla WebSocket) + * `db` – baza danych PostgreSQL + * `db` – baza danych PostgreSQL (używana również jako warstwa kanałów dla Django Channels via `channels_postgres`) +* Plik `.env` lub komentarze w `docker-compose.yml` wskazujące, jak skonfigurować zmienne środowiskowe (np. `SECRET_KEY`, dane dostępowe do bazy) Uruchomienie aplikacji sprowadza się do: + ```bash docker-compose up --build ``` + Po starcie wszystkie migracje powinny zostać wykonane automatycznie, a aplikacja dostępna pod `http://localhost:8000`. ### Sposób oddania pracy + - Repozytorium kodu (np. GitHub, GitLab) zawierające cały projekt, w tym `Dockerfile`, `docker-compose.yml` oraz instrukcję uruchomienia (`README.md` z komendą `docker-compose up`). -- Link do repozytorium umieszczony w pliku `.txt` na platformie Moodle. -- Nie jest wymagane żadne publiczne wdrożenie – oceniana będzie poprawność działania lokalnego po wykonaniu `docker-compose up`. +* Link do repozytorium umieszczony w pliku `.txt` na platformie Moodle. +* Nie jest wymagane żadne publiczne wdrożenie – oceniana będzie poprawność działania lokalnego po wykonaniu `docker-compose up`. --- @@ -78,35 +86,38 @@ Po starcie wszystkie migracje powinny zostać wykonane automatycznie, a aplikacj 1. **Wymagania**: Upewnij się, że masz zainstalowane **Docker** oraz **Docker Compose**. 2. **Uruchomienie aplikacji**: Otwórz terminal w głównym katalogu projektu i uruchom: + ```bash docker-compose up --build ``` + 3. **Automatyczna inicjalizacja**: - - Uruchomi się baza danych PostgreSQL oraz serwer webowy Daphne. - - Migracje bazy danych zostaną wygenerowane i zaaplikowane automatycznie. - - Domyślne konto **Administratora** zostanie stworzone. + * Uruchomi się baza danych PostgreSQL oraz serwer webowy Daphne. + * Migracje bazy danych zostaną wygenerowane i zaaplikowane automatycznie. + * Domyślne konto **Administratora** zostanie stworzone. 4. **Dostęp do aplikacji**: Otwórz przeglądarkę i wejdź na: [http://localhost:8000](http://localhost:8000) ## 👑 Przewodnik dla Administratora **Domyślne dane logowania (Administrator):** -- **Login**: `admin` -- **Hasło**: `admin` +* **Login**: `admin` +* **Hasło**: `admin` **Funkcje i uprawnienia:** -- **Panel Administracyjny**: Dostępny z paska nawigacji po zalogowaniu. Pozwala na przegląd użytkowników, zmianę ról (Administrator, Moderator, Użytkownik) oraz globalne blokowanie/odblokowywanie. -- **Hierarchia ról**: - - **Administrator** ma pełny dostęp do wszystkich kanałów, może usuwać dowolne wiadomości i kanały, a także zarządzać rolami. - - **Moderator** może usuwać nieodpowiednie wiadomości i blokować użytkowników, ale nie może zmieniać ról. - - **Użytkownik** może tworzyć kanały, pisać w nich, wysyłać wiadomości prywatne i usuwać własne wiadomości. +* **Panel Administracyjny**: Dostępny z paska nawigacji po zalogowaniu. Pozwala na przegląd użytkowników, zmianę ról (Administrator, Moderator, Użytkownik) oraz globalne blokowanie/odblokowywanie. +* **Hierarchia ról**: + * **Administrator** ma pełny dostęp do wszystkich kanałów, może usuwać dowolne wiadomości i kanały, a także zarządzać rolami. + * **Moderator** może usuwać nieodpowiednie wiadomości i blokować użytkowników, ale nie może zmieniać ról. + * **Użytkownik** może tworzyć kanały, pisać w nich, wysyłać wiadomości prywatne i usuwać własne wiadomości. ## ✅ Zgodność z wymaganiami Projekt w pełni realizuje założenia: + 1. **System użytkowników**: Wbudowana rejestracja, logowanie, walidacja unikalności oraz panel edycji profilu (awatar, opis). 2. **Role i uprawnienia**: Działają 3 wymagane role (Admin, Moderator, Użytkownik). Backend skutecznie weryfikuje uprawnienia. 3. **Komunikacja w czasie rzeczywistym**: Wiadomości w kanałach publicznych oraz DM opierają się na technologii WebSockets (Django Channels + `channels_postgres`). 4. **Multimedia**: Dodano obsługę przesyłania plików, które od razu po przesłaniu wyświetlają się innym użytkownikom jako obrazy lub odtwarzacze audio. 5. **Moderacja**: Administrator/Moderator może usuwać niepożądane wiadomości oraz całkowicie blokować dostęp wybranym użytkownikom. -6. **Środowisko Docker**: Całość działa w odseparowanych kontenerach (web, db) uruchamianych jednym poleceniem, z automatycznymi migracjami i początkowym seedowaniem bazy. \ No newline at end of file +6. **Środowisko Docker**: Całość działa w odseparowanych kontenerach (web, db) uruchamianych jednym poleceniem, z automatycznymi migracjami i początkowym seedowaniem bazy.