docs(readme): standardize bullet format and improve spacing

This commit is contained in:
2026-04-28 13:55:05 +02:00
parent 228aa15fc8
commit 9c402dc05e
+51 -40
View File
@@ -6,70 +6,78 @@
--- ---
### Cel zadania ### 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. 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 ### Wymagania funkcjonalne
1. **System użytkowników** 1. **System użytkowników**
- Rejestracja (login, email, hasło) * Rejestracja (login, email, hasło)
- Logowanie i wylogowanie * Logowanie i wylogowanie
- Walidacja (unikalny login i email, siła hasła) * Walidacja (unikalny login i email, siła hasła)
- Edycja profilu (awatar, opis) * Edycja profilu (awatar, opis)
2. **Role i uprawnienia** (minimum 3 role) 2. **Role i uprawnienia** (minimum 3 role)
- *Administrator* pełny dostęp, zarządzanie użytkownikami i kanałami * *Administrator* pełny dostęp, zarządzanie użytkownikami i kanałami
- *Moderator* zarządzanie wiadomościami, blokowanie użytkowników * *Moderator* zarządzanie wiadomościami, blokowanie użytkowników
- *Użytkownik* wysyłanie wiadomości, korzystanie z kanałów * *Użytkownik* wysyłanie wiadomości, korzystanie z kanałów
- Dynamiczne przypisywanie ról, egzekwowanie uprawnień w backendzie * Dynamiczne przypisywanie ról, egzekwowanie uprawnień w backendzie
3. **Komunikacja** 3. **Komunikacja**
- Kanały publiczne/grupowe: tworzenie, dołączanie, historia wiadomości * Kanały publiczne/grupowe: tworzenie, dołączanie, historia wiadomości
- Wiadomości prywatne (DM) między dwoma użytkownikami * Wiadomości prywatne (DM) między dwoma użytkownikami
- Obsługa czasu rzeczywistego (WebSocket, np. Django Channels + PostgreSQL) * Obsługa czasu rzeczywistego (WebSocket, np. Django Channels + PostgreSQL)
4. **Multimedia** 4. **Multimedia**
- Wiadomości tekstowe, obrazy, nagrania audio (pliki dźwiękowe) * Wiadomości tekstowe, obrazy, nagrania audio (pliki dźwiękowe)
5. **Moderacja** 5. **Moderacja**
- Blokowanie użytkowników, usuwanie wiadomości * Blokowanie użytkowników, usuwanie wiadomości
- (Opcjonalnie) zgłaszanie wiadomości/użytkowników * (Opcjonalnie) zgłaszanie wiadomości/użytkowników
6. **Funkcje dodatkowe (mile widziane)** 6. **Funkcje dodatkowe (mile widziane)**
- Status online/offline, powiadomienia o nowych wiadomościach * Status online/offline, powiadomienia o nowych wiadomościach
- Wyszukiwanie użytkowników/kanałów, emoji/reakcje * Wyszukiwanie użytkowników/kanałów, emoji/reakcje
### Frontend ### Frontend
- Interfejs inspirowany Discordem (responsywny) - Interfejs inspirowany Discordem (responsywny)
- Wykorzystanie frameworka Bootstrap * Wykorzystanie frameworka Bootstrap
- Estetyczne formularze logowania i rejestracji (gotowe szablony CSS) * Estetyczne formularze logowania i rejestracji (gotowe szablony CSS)
- Obsługa WebSocket po stronie klienta (np. JavaScript) * Obsługa WebSocket po stronie klienta (np. JavaScript)
### Backend ### Backend
- Framework: **Django** (zalecane rozszerzenia: Django REST Framework, Django Channels) - 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`) * WebSocket do komunikacji w czasie rzeczywistym (z użyciem PostgreSQL jako warstwy kanałów `channels_postgres`)
- Obsługa przesyłania plików (obrazy, audio) * Obsługa przesyłania plików (obrazy, audio)
- Własna strona błędu 404 i 500 * Własna strona błędu 404 i 500
### Środowisko uruchomieniowe **kontenery Docker** ### Ś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**. 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: Pliki wymagane w repozytorium:
- `Dockerfile` budujący obraz aplikacji Django (wraz z zależnościami, np. z pliku `requirements.txt`) * `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: * `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) * `web` serwer Django (z obsługą ASGI np. Daphne/Uvicorn dla WebSocket)
- `db` baza danych PostgreSQL * `db` baza danych PostgreSQL
- `db` baza danych PostgreSQL (używana również jako warstwa kanałów dla Django Channels via `channels_postgres`) * `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) * 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: Uruchomienie aplikacji sprowadza się do:
```bash ```bash
docker-compose up --build docker-compose up --build
``` ```
Po starcie wszystkie migracje powinny zostać wykonane automatycznie, a aplikacja dostępna pod `http://localhost:8000`. Po starcie wszystkie migracje powinny zostać wykonane automatycznie, a aplikacja dostępna pod `http://localhost:8000`.
### Sposób oddania pracy ### 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`). - 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. * 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`. * Nie jest wymagane żadne publiczne wdrożenie oceniana będzie poprawność działania lokalnego po wykonaniu `docker-compose up`.
--- ---
@@ -78,32 +86,35 @@ Po starcie wszystkie migracje powinny zostać wykonane automatycznie, a aplikacj
1. **Wymagania**: Upewnij się, że masz zainstalowane **Docker** oraz **Docker Compose**. 1. **Wymagania**: Upewnij się, że masz zainstalowane **Docker** oraz **Docker Compose**.
2. **Uruchomienie aplikacji**: 2. **Uruchomienie aplikacji**:
Otwórz terminal w głównym katalogu projektu i uruchom: Otwórz terminal w głównym katalogu projektu i uruchom:
```bash ```bash
docker-compose up --build docker-compose up --build
``` ```
3. **Automatyczna inicjalizacja**: 3. **Automatyczna inicjalizacja**:
- Uruchomi się baza danych PostgreSQL oraz serwer webowy Daphne. * Uruchomi się baza danych PostgreSQL oraz serwer webowy Daphne.
- Migracje bazy danych zostaną wygenerowane i zaaplikowane automatycznie. * Migracje bazy danych zostaną wygenerowane i zaaplikowane automatycznie.
- Domyślne konto **Administratora** zostanie stworzone. * Domyślne konto **Administratora** zostanie stworzone.
4. **Dostęp do aplikacji**: 4. **Dostęp do aplikacji**:
Otwórz przeglądarkę i wejdź na: [http://localhost:8000](http://localhost:8000) Otwórz przeglądarkę i wejdź na: [http://localhost:8000](http://localhost:8000)
## 👑 Przewodnik dla Administratora ## 👑 Przewodnik dla Administratora
**Domyślne dane logowania (Administrator):** **Domyślne dane logowania (Administrator):**
- **Login**: `admin` * **Login**: `admin`
- **Hasło**: `admin` * **Hasło**: `admin`
**Funkcje i uprawnienia:** **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. * **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**: * **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. * **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. * **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. * **Użytkownik** może tworzyć kanały, pisać w nich, wysyłać wiadomości prywatne i usuwać własne wiadomości.
## ✅ Zgodność z wymaganiami ## ✅ Zgodność z wymaganiami
Projekt w pełni realizuje założenia: 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). 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. 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`). 3. **Komunikacja w czasie rzeczywistym**: Wiadomości w kanałach publicznych oraz DM opierają się na technologii WebSockets (Django Channels + `channels_postgres`).