first commit
This commit is contained in:
85
bot/.github/copilot-instructions.md
vendored
Normal file
85
bot/.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
<!-- Use this file to provide workspace-specific custom instructions to Copilot. For more details, visit https://code.visualstudio.com/docs/copilot/copilot-customization#_use-a-githubcopilotinstructionsmd-file -->
|
||||
|
||||
# Skrzynka Impostora Bot - Instrukcje dla Copilot
|
||||
|
||||
## Opis projektu
|
||||
To jest projekt Discord Bot o nazwie "Skrzynka Impostora Bot" służący do zarządzania wiadomościami powiatalnymi na serwerach Discord. Projekt składa się z:
|
||||
|
||||
- **Backend**: Node.js + Express z biblioteką discord.js
|
||||
- **Frontend**: React SPA (Single Page Application)
|
||||
- **Baza danych**: PostgreSQL
|
||||
- **Funkcjonalności**: Discord slash commands, panel web OAuth2, edytor wiadomości
|
||||
|
||||
## Struktura projektu
|
||||
```
|
||||
/backend/ - Serwer Node.js i bot Discord
|
||||
/commands/ - Slash commands dla Discord
|
||||
/database/ - Zarządzanie bazą danych
|
||||
/web/ - API serwer dla panelu web
|
||||
/frontend/ - React aplikacja (panel administracyjny)
|
||||
/src/components/ - Komponenty React
|
||||
/src/pages/ - Strony aplikacji
|
||||
/src/services/ - Serwisy API
|
||||
/src/hooks/ - React hooks
|
||||
/database/ - Skrypty migracji i seedowania
|
||||
/shared/ - Współdzielone utilities
|
||||
```
|
||||
|
||||
## Kluczowe technologie
|
||||
- **Discord.js v14** - Biblioteka Discord API
|
||||
- **Express.js** - Web framework
|
||||
- **PostgreSQL** - Baza danych relacyjna
|
||||
- **React 18** - Frontend framework
|
||||
- **JWT** - Autoryzacja
|
||||
- **OAuth2** - Logowanie przez Discord
|
||||
|
||||
## Główne funkcjonalności
|
||||
1. **Slash Commands**:
|
||||
- `/skrzynka` - komendy użytkownika
|
||||
- `/skrzynka-adm` - komendy administracyjne
|
||||
|
||||
2. **Panel Web**:
|
||||
- Logowanie przez Discord OAuth2
|
||||
- Edytor wiadomości z podglądem
|
||||
- Zarządzanie serwerami
|
||||
- Historia zmian
|
||||
|
||||
3. **Zarządzanie wiadomościami**:
|
||||
- Wsparcie Discord Markdown
|
||||
- Live preview
|
||||
- Walidacja długości (2000 znaków)
|
||||
- Automatyczna aktualizacja na Discord
|
||||
|
||||
## Style kodowania
|
||||
- Używaj ES6+ składni
|
||||
- Preferuj async/await nad Promise.then()
|
||||
- Zastosuj destructuring tam gdzie możliwe
|
||||
- Używaj const/let zamiast var
|
||||
- Komponenty React jako funkcyjne z hooks
|
||||
- Nazwy plików: PascalCase dla komponentów, camelCase dla utilities
|
||||
|
||||
## Bezpieczeństwo
|
||||
- Wszystkie zapytania API wymagają JWT token
|
||||
- Walidacja danych wejściowych przez express-validator
|
||||
- Helmet.js dla zabezpieczeń HTTP
|
||||
- CORS skonfigurowany dla specific origins
|
||||
- SQL prepared statements (pg library)
|
||||
|
||||
## Środowisko i konfiguracja
|
||||
- Zmienne środowiskowe w pliku .env
|
||||
- Development: localhost:3000 (API), localhost:3001 (React)
|
||||
- Production: buildy React serwowane przez Express
|
||||
|
||||
## Konwencje nazewnictwa
|
||||
- Tabele bazy: snake_case (np. welcome_messages)
|
||||
- Kolumny bazy: snake_case (np. guild_id)
|
||||
- JavaScript: camelCase (np. guildId)
|
||||
- Komponenty React: PascalCase (np. MessageEditor)
|
||||
- CSS classes: kebab-case (np. discord-button)
|
||||
|
||||
## Pomocne wskazówki
|
||||
- Bot wymaga uprawnień MANAGE_CHANNELS do działania
|
||||
- Discord API ma limit 2000 znaków na wiadomość
|
||||
- Używaj PostgreSQL JSONB dla embed_data
|
||||
- Zawsze dodawaj error handling dla Discord API calls
|
||||
- Frontend używa Tailwind-like CSS classes w App.css
|
||||
Reference in New Issue
Block a user