docs(readme): standardize bullet format and improve spacing
This commit is contained in:
@@ -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`).
|
||||||
|
|||||||
Reference in New Issue
Block a user