Files
SkrzynkaImpostora/zalozenia.md
2025-07-21 09:26:45 +02:00

79 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
4. Obsługa wielu wariantów wiadomości (częściowo dzielona, carouseli, linki, emoji).
## 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.
## 5. Wymagania niefunkcjonalne
- **Wydajność:** Wysłanie i aktualizacja < 500ms.
- **Dostępność:** ≥ 99,5% czasu działania.
- **Bezpieczeństwo:** login i hasło zahashowane, możliwość zmiany hasła,
- Kod: JavaScript (Node.js), bazy danych SQL (PostgreSQL/MySQL).
- Bot uruchamiany przez docker compose (v2)
## 6. Technologia i architektura
- **Backend:** Node.js + Express/Koa.
- **Baza danych:** SQL (PostgreSQL lub MySQL).
- **Frontend panelu web:** Prosty web panel html + js.
- **Integracja Discord API:** Biblioteka discord.js.
## 7. Formatowanie wiadomości powitalnej
- Wsparcie Discord Markdown (nagłówki, listy, linki, kanały, wzmianki, emoji).
- Automatyczne dzielenie treści na kilka embedów, jeśli przekracza limit znaków (2000).
- Wbudowane zmienne szablonowe (np. `{{user}}`, `{{server}}`, `{{date}}`).
## 8. Panel web
- **Logowanie:** Login i hasło
- **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.