Add zalozenia.md
This commit is contained in:
90
zalozenia.md
Normal file
90
zalozenia.md
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# Założenia biznesowe dla projektu Skrzynka Impostora Bot
|
||||||
|
|
||||||
|
## 1. Wprowadzenie
|
||||||
|
Celem projektu jest stworzenie kompleksowego bota Discordowego „Skrzynka Impostora Bot”, który umożliwi automatyczne wysyłanie przyjaznej, konfigurowalnej wiadomości powitalnej na wskazanym kanale (#witamy) i jej bieżącą aktualizację za pomocą panelu web.
|
||||||
|
|
||||||
|
## 2. Cele biznesowe
|
||||||
|
- **Zwiększenie angażowania użytkowników** poprzez automatyczne i atrakcyjne powitania.
|
||||||
|
- **Usprawnienie komunikacji** i skrócenie czasu wdrożenia nowych członków.
|
||||||
|
- **Łatwe zarządzanie treścią** wiadomości przez administratorów bez konieczności ingerencji w kod.
|
||||||
|
|
||||||
|
## 3. Zakres projektu
|
||||||
|
- **Wersja 1.0 (etap pierwszy):**
|
||||||
|
1. Integracja bota z Discord API.
|
||||||
|
2. Wysyłanie domyślnej wiadomości powitalnej na wskazany kanał #witamy.
|
||||||
|
3. Panel web do edycji treści i konfiguracji kanału powitalnego.
|
||||||
|
|
||||||
|
- **Funkcjonalności docelowe:**
|
||||||
|
- Obsługa wielu wariantów wiadomości (częściowo dzielona, carouseli, linki, emoji).
|
||||||
|
- Harmonogramy wysyłki (poranne, wieczorne przypomnienia, rotacje sezonowe).
|
||||||
|
- Wielojęzyczność.
|
||||||
|
|
||||||
|
## 4. Wymagania funkcjonalne
|
||||||
|
1. **Konfiguracja kanału powitalnego**
|
||||||
|
- Możliwość wskazania przez panel web ID lub nazwy kanału.
|
||||||
|
- Walidacja uprawnień bota.
|
||||||
|
2. **Edytor wiadomości**
|
||||||
|
- Pole tekstowe z podglądem Discord Markdown.
|
||||||
|
- Dynamiczne zarządzanie linkami (URL Discord, przyciski, embedy).
|
||||||
|
3. **Publikacja wiadomości**
|
||||||
|
- Usuwanie / aktualizacja poprzedniej wersji.
|
||||||
|
- Automatyczne wysyłanie po zapisaniu zmian.
|
||||||
|
4. **Historia zmian**
|
||||||
|
- Rejestracja timestamp i użytkownika, który wprowadził modyfikacje.
|
||||||
|
5. **Uprawnienia użytkowników**
|
||||||
|
- Role: administrator, edytor, przeglądający.
|
||||||
|
|
||||||
|
## 5. Wymagania niefunkcjonalne
|
||||||
|
- **Wydajność:** Wysłanie i aktualizacja < 500 ms.
|
||||||
|
- **Skalowalność:** Obsługa wielu serwerów jednocześnie.
|
||||||
|
- **Dostępność:** ≥ 99,5% czasu działania.
|
||||||
|
- **Bezpieczeństwo:** Autoryzacja użytkowników (JWT / OAuth2), ochrona przed XSS w edytorze.
|
||||||
|
- **Łatwość utrzymania:** Kod: JavaScript (Node.js), bazy danych SQL (PostgreSQL/MySQL).
|
||||||
|
|
||||||
|
## 6. Technologia i architektura
|
||||||
|
- **Backend:** Node.js + Express/Koa.
|
||||||
|
- **Baza danych:** SQL (PostgreSQL lub MySQL).
|
||||||
|
- **Frontend panelu web:** React lub Vue.
|
||||||
|
- **Integracja Discord API:** Biblioteka discord.js.
|
||||||
|
- **Hosting:** Cloud (Heroku, AWS, Azure).
|
||||||
|
|
||||||
|
## 7. Formatowanie wiadomości powitalnej
|
||||||
|
- Wsparcie Discord Markdown (nagłówki, listy, linki, kanały, wzmianki, emoji).
|
||||||
|
- Możliwość dzielenia treści na kilka embedów, jeśli przekracza limit znaków (2000).
|
||||||
|
- Wbudowane zmienne szablonowe (np. `{{user}}`, `{{server}}`, `{{date}}`).
|
||||||
|
|
||||||
|
## 8. Panel web
|
||||||
|
- **Logowanie:** OAuth2 Discord.
|
||||||
|
- **Dashboard:**
|
||||||
|
- Wybór serwera (lista guilds).
|
||||||
|
- Konfiguracja kanału powitalnego.
|
||||||
|
- Edytor treści z live preview.
|
||||||
|
- Historia wersji i rollback.
|
||||||
|
|
||||||
|
## 9. Zarządzanie danymi
|
||||||
|
- Tabele: `Guilds`, `WelcomeChannels`, `Messages`, `Users`, `Revisions`.
|
||||||
|
- Schematy relacyjne i indeksy na kolumnach ID oraz timestamp.
|
||||||
|
|
||||||
|
## 10. Interfejs Slash Commands
|
||||||
|
Bot obsługuje komendy slash w Discord:
|
||||||
|
|
||||||
|
- `/skrzynka` – komendy dla użytkowników (lista dostępnych funkcji).
|
||||||
|
- `/skrzynka-adm` – komendy administracyjne.
|
||||||
|
|
||||||
|
### Komendy administracyjne:
|
||||||
|
- `/skrzynka-adm set welcome <channel_id>` – ustawia kanał, na którym będzie wyświetlana wiadomość powitalna.
|
||||||
|
- `/skrzynka-adm welcome` – wysyła wiadomość powitalną na skonfigurowanym kanale.
|
||||||
|
- `/skrzynka-adm welcome update` – aktualizuje istniejącą wiadomość powitalną z bazy.
|
||||||
|
|
||||||
|
Zarządzanie kanałem i treścią odbywa się przez panel web po zapisaniu zmian w bazie danych.
|
||||||
|
|
||||||
|
## 11. Kryteria akceptacji
|
||||||
|
- Bot poprawnie wysyła i aktualizuje wiadomość powitalną.
|
||||||
|
- Panel web pozwala edytować treść i wybór kanału.
|
||||||
|
- Przekroczenie limitów Discord (2000 znaków) jest obsłużone.
|
||||||
|
- Dokumentacja API i instrukcja użytkownika.
|
||||||
|
|
||||||
|
## 12. Rozwój w kolejnych etapach
|
||||||
|
- **Rotacje i harmonogramy:** Zaplanowane wysyłki.
|
||||||
|
- **Wersje językowe:** Automatyczne wykrywanie preferencji.
|
||||||
|
- **Analizy:** Statystyki odsłon i reakcji użytkowników.
|
||||||
Reference in New Issue
Block a user