Une interface web interne pour les agents du FIB sur un serveur GTA V roleplay.
Installation · Fonctionnalités · Dossiers groupes · Structure
FIB Portal centralise les informations, les rapports, la prise de service et la communication entre agents dans un seul MDT accessible depuis un navigateur.
| 🛰️ Interface MDT Outil web du FIB |
🔐 Accès sécurisé Sessions agents |
📡 Communication Messagerie interne |
FIB Portal est une interface web de communication et de gestion opérationnelle, conçue comme un MDT (Mobile Data Terminal) pour un serveur de jeu GTA V en roleplay (RP).
L'objectif est de fournir aux agents du FIB une interface centralisée pour consulter les informations utiles à leurs interventions, rédiger des rapports, suivre leur prise de service et communiquer avec les autres membres de l'organisation. Le site fonctionne dans un navigateur et peut être utilisé comme outil complémentaire pendant les sessions RP.
Dans le cadre du roleplay, le MDT représente le système informatique interne du FIB. Il permet notamment de :
- centraliser les informations sur les citoyens rencontrés en jeu ;
- documenter les interventions et les événements dans des rapports ;
- identifier l'agent responsable d'un rapport ;
- communiquer de manière privée entre agents grâce à la messagerie interne ;
- indiquer si un agent est en service, en pause ou hors service ;
- donner aux responsables une vue sur les agents, les activités et les logs système.
Le projet fournit l'interface et la base de données du MDT. Il ne se connecte pas directement au client GTA V et ne remplace pas les scripts ou ressources du serveur de jeu.
| Module | Utilité dans le RP | Accès |
|---|---|---|
| 📊 Tableau de bord | Suivre l'activité globale du FIB | /auth/dashboard |
| 👤 Citoyens | Créer et consulter les fiches citoyen | /citizens |
| 📄 Rapports | Documenter les interventions et preuves | /reports |
| 📁 Dossiers groupes | Regrouper groupes, rapports et citoyens | /groups |
| ⏱️ Service | Gérer la prise de service et les pauses | /service |
| ✉️ Messages | Communiquer entre agents | /messages |
| 🛡️ Administration | Gérer les accès et consulter les logs | /users/admin, /logs/admin |
- Connexion des agents avec identifiant et mot de passe.
- Inscription avec grade et niveau d'accréditation.
- Protection des pages internes par session.
- Déconnexion de la session active.
Le tableau de bord présente une vue synthétique de l'activité du FIB :
- nombre d'agents actuellement en service ;
- nombre total de rapports ;
- nombre de citoyens enregistrés ;
- durée totale de service ;
- classement des heures de service ;
- activité récente concernant les rapports et les citoyens.
Les agents peuvent créer une fiche citoyen avec son identité, sa date de naissance et ses informations opérationnelles : téléphone, profession, affiliation, permis, véhicules, habitations et armes enregistrées.
Chaque fiche peut également contenir plusieurs photos ou images, consultables dans une galerie depuis le dossier citoyen. Les statuts Recherché et Dangereux sont activables indépendamment.
Les rapports peuvent contenir :
- un titre et une description détaillée ;
- un niveau de confidentialité ;
- les personnes et agents concernés ;
- les véhicules et plaques d'immatriculation ;
- les armes et numéros de série.
Un rapport peut être consulté, modifié ou supprimé. L'agent ayant créé le rapport est conservé dans la base de données.
La messagerie fonctionne comme une boîte mail réservée aux agents :
- boîte de réception ;
- messages envoyés ;
- sélection d'un destinataire parmi les utilisateurs enregistrés ;
- objet et contenu du message ;
- suppression des messages reçus ou envoyés par leur propriétaire.
Un agent peut démarrer son service, le mettre en pause, le reprendre et le terminer. Les durées sont enregistrées dans MySQL et utilisées dans le classement affiché sur le tableau de bord.
Les agents disposant d'une accréditation suffisante peuvent gérer les grades et les niveaux d'accès des utilisateurs. Les connexions, inscriptions, modifications et créations de rapports sont enregistrées dans les logs du système.
Un dossier groupe permet de centraliser le renseignement sur une organisation ou un groupe actif dans le RP. Il peut contenir :
- 🏷️ un nom de groupe ;
- 📣 ses revendications ;
- 🗺️ ses zones d'opération régulières ;
- 🏚️ sa planque connue ;
- 📄 les rapports qui lui sont affiliés ;
- 👤 les fiches citoyens qui lui sont rattachées.
Depuis la page /reports, choisissez le type Dossier groupe dans la fiche de création. Seul le nom est obligatoire ; les revendications, zones et planque peuvent être complétées plus tard.
Pour rattacher un rapport existant, sélectionnez un dossier groupe dans le formulaire. Pour rattacher un citoyen, choisissez le groupe depuis la création ou la modification de sa fiche.
graph TD
D[Dossier groupe] --> R[Rapports affiliés]
D --> C[Fiches citoyens affiliées]
D --> I[Revendications]
D --> Z[Zones d'opération]
D --> P[Planque connue]
flowchart LR
Agent[Agent FIB] --> Login[Connexion]
Login --> MDT[MDT FIB Portal]
MDT --> Dashboard[Tableau de bord]
MDT --> Citizens[Dossiers citoyens]
MDT --> Reports[Rapports opérationnels]
MDT --> Service[Prise de service]
MDT --> Messages[Messagerie interne]
MDT --> Administration[Administration et logs]
Le MDT est un outil complémentaire au serveur GTA V : les agents effectuent leurs actions RP dans le jeu et utilisent FIB Portal pour consigner, consulter et partager les informations de leur organisation.
- Node.js : environnement d'exécution JavaScript côté serveur.
- Express : serveur HTTP et organisation des routes.
- EJS : génération des pages HTML côté serveur.
- MySQL : stockage des utilisateurs, citoyens, rapports, messages, services et logs.
- mysql2 : connexion entre Node.js et MySQL.
- bcrypt : hachage et vérification des mots de passe.
- express-session : gestion des sessions authentifiées.
- Axios : appels HTTP utilisés par les fonctionnalités externes du projet.
- Node.js 18 ou version plus récente ;
- npm ;
- MySQL 8 ou une version compatible ;
- Git pour cloner le dépôt.
git clone https://github.com/Shoccapik/fib.git
cd fib
npm install
mysql -u root -p < database/schema.sql
npm startPuis ouvrez http://localhost:3000.
git clone https://github.com/Shoccapik/fib.git
cd fibnpm installCette commande installe toutes les dépendances définies dans package.json. Le dossier node_modules est volontairement exclu du dépôt par .gitignore.
Créez la base et les tables avec le script fourni :
mysql -u root -p < database/schema.sqlLe script crée la base fib_portal, les tables nécessaires et un compte administrateur initial.
Si votre installation MySQL utilise d'autres identifiants, adaptez la connexion dans config/database.js :
const db = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "fib_portal"
})npm startLe serveur démarre sur :
http://localhost:3000
Ouvrez cette adresse dans un navigateur pour accéder à l'écran de connexion.
Le script SQL fournit le compte de démonstration suivant :
- Utilisateur :
admin - Mot de passe :
admin123
Changez ce mot de passe et utilisez des identifiants adaptés avant tout déploiement sur un serveur RP public.
fib/
├── config/ # Connexion MySQL
├── database/ # Schéma SQL
├── middleware/ # Protection des routes
├── public/ # CSS, JavaScript et images
├── routes/ # Routes Express par fonctionnalité
├── utils/ # Outils communs, notamment les logs
├── views/ # Pages EJS du MDT
├── .gitignore # Fichiers exclus du dépôt Git
├── package.json # Dépendances et scripts npm
└── server.js # Point d'entrée de l'application
/: connexion ;/auth/register: inscription ;/auth/dashboard: tableau de bord ;/citizens: dossiers citoyens ;/reports: rapports opérationnels ;/groups: dossiers groupes et informations de renseignement ;/service: prise de service ;/messages: messagerie interne ;/users/admin: administration des utilisateurs ;/logs/admin: logs du système.
Le projet ne contient pas encore de suite de tests automatisée. Les commandes suivantes vérifient la syntaxe du serveur, des routes et de la vue Messages :
node --check server.js
node --check routes/messages.jsPour tester complètement l'application, MySQL doit être démarré et la base fib_portal doit être accessible avec les paramètres définis dans config/database.js.
Ce projet est destiné à un usage de roleplay sur GTA V. Les données affichées sont des données de jeu et ne doivent pas être utilisées comme un véritable système policier ou administratif.