Dashboard web de gestion et supervision pour serveurs Discord, conçu pour une utilisation professionnelle par le staff et l'administration.
.
├── apps/
│ ├── web/ # Frontend Next.js 14 (App Router)
│ └── api/ # Backend NestJS
└── packages/
└── shared/ # Types TypeScript partagés
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- UI: Tailwind CSS + ShadCN UI
- State Management: Zustand
- Data Fetching: TanStack Query (React Query)
- WebSocket: Socket.IO Client
- Framework: NestJS
- Language: TypeScript
- Database: PostgreSQL
- ORM: Prisma
- Auth: Passport (Discord OAuth2)
- WebSocket: Socket.IO
- Validation: Class Validator
- Documentation: Swagger
- 🔐 Authentification JWT
- 📊 Dashboard temps réel
- 📝 Système de logs complet
- ⏱️ Tracking temps de présence vocal
- 🎤 Prise de service automatique
- 👥 Gestion des rôles à distance
- 📅 Calendrier événements
- 💬 Chat interne staff
- 🎫 Système de tickets
- 📄 Rapports staff
- 🔔 Notifications
- Role-Based Access Control (RBAC)
- Audit logs pour toutes actions sensibles
- Vérification appartenance serveur
- Permissions hiérarchiques
- Protection CSRF
- Node.js 18+
- PostgreSQL 14+
- Cloner et installer
npm install- Configuration environnement
Copier .env.example dans apps/api/.env et configurer:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/discord_dashboard"
# JWT
JWT_SECRET="your_super_secret_jwt_key"
JWT_EXPIRES_IN="7d"
# App
API_URL="http://localhost:3001"
WEB_URL="http://localhost:3000"
NODE_ENV="development"- Base de données
npm run prisma:generate
npm run prisma:migrate- Lancer l'application
npm run dev- Frontend: http://localhost:3000
- Backend: http://localhost:3001
- API Docs: http://localhost:3001/api/docs
- Accéder à http://localhost:3000
- S'authentifier avec un token JWT
- Sélectionner le serveur à gérer
Le système de permissions est basé sur les rôles Discord:
- Owner/Admin: Accès complet
- Moderator: Gestion membres, logs, tickets
- Staff: Prise de service, rapports
- Membre: Lecture seule
API REST documentée avec Swagger: http://localhost:3001/api/docs
POST /auth/refresh- Rafraîchir le token JWTGET /stats/dashboard- Statistiques dashboardGET /logs- Historique logsGET /voice/presence- Temps de présenceGET /services- Historique servicesPOST /roles- Gestion rôlesGET /events- CalendrierGET /tickets- Tickets support
apps/web/
├── src/
│ ├── app/ # App Router
│ │ ├── (auth)/ # Pages authentification
│ │ ├── (dashboard)/ # Pages dashboard
│ │ └── api/ # API Routes
│ ├── components/ # Composants React
│ │ ├── ui/ # ShadCN components
│ │ ├── dashboard/ # Composants métier
│ │ └── layouts/ # Layouts
│ ├── lib/ # Utilities
│ ├── hooks/ # Custom hooks
│ ├── stores/ # Zustand stores
│ └── types/ # TypeScript types
apps/api/
├── src/
│ ├── auth/ # Module authentification
│ ├── users/ # Module utilisateurs
│ ├── servers/ # Module serveurs Discord
│ ├── stats/ # Module statistiques
│ ├── logs/ # Module logs
│ ├── voice/ # Module tracking vocal
│ ├── services/ # Module prise de service
│ ├── roles/ # Module gestion rôles
│ ├── events/ # Module calendrier
│ ├── tickets/ # Module tickets
│ ├── chat/ # Module chat interne
│ ├── notifications/ # Module notifications
│ └── common/ # Guards, decorators, filters
WebSocket events (Socket.IO):
user:connected- Connexion utilisateurpresence:update- Mise à jour présencevoice:join- Entrée vocalvoice:leave- Sortie vocalservice:start- Début serviceservice:end- Fin servicerole:update- Changement rôlelog:new- Nouveau lognotification:new- Nouvelle notification
# Tests unitaires
npm run test
# Tests e2e
npm run test:e2e
# Coverage
npm run test:cov# Build production
npm run build
# Start production
npm run start:prod- Code modulaire et maintenable
- Typage strict TypeScript
- Commentaires sur parties critiques
- Commits conventionnels
- Tests pour logique métier
feat: nouvelle fonctionnalité
fix: correction bug
docs: documentation
refactor: refactoring
test: ajout tests
chore: tâches maintenance
MIT
Pour toute question ou assistance:
- GitHub Issues
- Documentation complète dans
/docs
Made with ❤️ for professional Discord server management