Guide de l'Administrateur
Pilotez et maintenez la plateforme LBC237
Sommaire
Dashboard administrateur
Le tableau de bord admin affiche les KPIs essentiels de la plateforme.
Métriques affichées
Graphiques disponibles
- Croissance des inscriptions (30 derniers jours)
- Répartition des utilisateurs par rôle
- Évolution des offres publiées
- Taux de conversion des candidatures
- Revenus par plan d'abonnement
Gestion des utilisateurs
Gérez tous les utilisateurs depuis Admin > Utilisateurs.
Actions disponibles
Activer un compte
Autoriser l'utilisateur à se connecter et utiliser la plateforme.
Suspendre un compte
Bloquer temporairement l'accès en cas de comportement inapproprié. L'utilisateur verra un message d'erreur à la connexion.
Consulter un profil
Voir les détails complets : date d'inscription, activité, abonnement, candidatures.
Filtres
- Par rôle : Candidats, Recruteurs, Admins
- Par statut : Actif, Suspendu, Email non vérifié
- Recherche par nom ou email
Modération des offres
Modérez les offres d'emploi depuis Admin > Offres.
Flux de modération
- Les nouvelles offres arrivent avec le statut En attente
- L'IA calcule automatiquement un score de fraude et un score de qualité
- Vous examinez l'offre et décidez :
Approuver
L'offre est publiée et visible
RejeterL'offre est refusée (spam, fraude)
SupprimerSuppression définitive
Indicateurs de fraude IA
- Score de fraude — Score de 0 (légitime) à 100 (probable fraude). Les offres avec un score > 70 sont signalées automatiquement.
- Score de qualité — Score de 0 à 100 mesurant la complétude et la pertinence de l'offre.
- Indicateurs vérifiés — Présence de numéro de téléphone suspect, demande de paiement, lien externe douteux, etc.
Vue détaillée
Cliquez sur une offre pour accéder à la vue détaillée (Admin > Offres > Détail) qui affiche :
- Description complète de l'offre
- Informations du recruteur
- Scores de fraude et qualité IA
- Source (publiée manuellement ou scrapée)
- Nombre de vues et candidatures
Contrôle du scraping
Gérez la collecte automatique d'offres depuis Admin > Scraping.
Sources de scraping
| Source | Statut | Fréquence |
|---|---|---|
| JobInfoCamer | Actif | Toutes les 4h |
| Emploi.cm | Actif | Toutes les 4h |
| Actif | Toutes les 4h | |
| KamerPower | Actif | Toutes les 4h |
| MinaJobs | Actif | Toutes les 4h |
Lancer un scraping manuel
- Accédez à Admin > Scraping
- Cliquez sur Lancer le scraping
- Le processus collecte les offres de toutes les sources actives
- Les nouvelles offres sont automatiquement dédupliquées (hash SHA256)
- Consultez les logs pour vérifier le bon déroulement
Logs de scraping
Chaque exécution génère des logs détaillés :
- Nombre d'offres collectées par source
- Nouveaux ajouts vs doublons
- Erreurs éventuelles avec contexte
- Durée d'exécution
Attention : Le scraping utilise des requêtes parallèles (8 simultanées max) avec retry exponentiel. Évitez de lancer plusieurs sessions de scraping en parallèle.
Via le terminal
# Scraping standard
php scripts/cron/scrape_jobs.php
# Scraping intelligent (adaptatif)
php scripts/cron/scrape_intelligent.php
# Scraping proactif (requêtes diversifiées)
php scripts/cron/scrape_proactive.php
Matching IA
Le matching IA est calculé automatiquement après chaque session de scraping. Vous pouvez aussi le relancer manuellement.
Relancer le matching
# Via le terminal
php scripts/cron/calculate_matches.php
Ou via l'API : POST /api/v1/admin/matching/run
Configuration du matching
Dans config/ai.php :
'matching' => [
'min_score' => 40, // Score minimum affiché
'good_score' => 60, // Seuil "bon match"
'excellent_score' => 80, // Seuil "excellent"
]
Gestion du blog
Le CMS blog est accessible depuis Admin > Blog.
Créer un article
- Cliquez sur Nouvel article
- Remplissez :
- Titre — Titre accrocheur pour le SEO
- Contenu — Corps de l'article (HTML supporté)
- Catégorie — Parmi les 8 catégories pré-définies
- Tags — Mots-clés pour le référencement
- Image — Photo d'illustration (upload intégré)
- Article mis en avant — Pour l'afficher en premier sur le blog
- Publiez ou enregistrez en brouillon
8 catégories pré-définies
Logs et monitoring
Consultez les logs système depuis Admin > Logs.
Niveaux de log
Canaux de log
- auth — Connexions, déconnexions, tentatives échouées
- scraping — Exécution du scraping, erreurs réseau
- matching — Calculs IA, scores, erreurs provider
- payment — Transactions, webhooks, erreurs paiement
- email — Envoi d'emails, erreurs SMTP
- push — Notifications push, erreurs, désactivations
- system — Événements système généraux
Filtres
Filtrez les logs par canal, niveau de sévérité, date et utilisateur pour identifier rapidement les problèmes.
Paiements et abonnements
Suivez les transactions depuis l'API : GET /api/v1/admin/payments
Informations disponibles
- Historique complet des transactions
- Statut de chaque paiement (pending, completed, failed)
- Méthode de paiement (MTN MoMo / Orange Money)
- Référence NotchPay
- Montant et plan souscrit
Webhooks
Les webhooks NotchPay, MTN et Orange arrivent automatiquement et sont vérifiés par signature HMAC-SHA256. En cas de problème :
- Vérifiez les logs canal "payment"
- Confirmez que les clés webhook dans
.envsont correctes - Vérifiez que l'URL
/api/v1/webhooks/notchpayest accessible publiquement
Tâches planifiées (Cron)
L'orchestrateur scripts/cron/master.php gère toutes les tâches automatiques.
Planning des tâches
| Tâche | Fréquence | Commande |
|---|---|---|
| Scraping des offres | Toutes les 4h | php scripts/cron/scrape_jobs.php |
| Calcul matching IA | Après scraping | php scripts/cron/calculate_matches.php |
| Envoi des alertes | Toutes les 30min | php scripts/cron/send_alerts.php |
| Nettoyage | Quotidien 2h | php scripts/cron/cleanup_expired.php |
| Vérification offres | Quotidien | php scripts/cron/verify_jobs.php |
| Maintenance SEO | Quotidien | php scripts/cron/seo_maintenance.php |
Configuration du crontab
# Ouvrir le crontab
crontab -e
# Ajouter la ligne suivante :
0 * * * * cd /chemin/vers/lbc237 && php scripts/cron/master.php
Note : Le master utilise un fichier de verrou (lock file) pour empêcher les exécutions parallèles. Si une tâche semble bloquée, supprimez le fichier .lock dans storage/.
Configuration système
La configuration est répartie dans le fichier .env et le dossier config/.
Fichiers de configuration
Variables .env essentielles
APP_ENV=production
APP_DEBUG=false
JWT_SECRET=<64_chars_minimum>
AI_PROVIDER=gemini
AI_API_KEY=<clé_api>
NOTCHPAY_PUBLIC_KEY=<clé>
MAIL_DRIVER=mailgun
VAPID_PUBLIC_KEY=<clé_vapid>
Sécurité et maintenance
Mesures de sécurité actives
Checklist de maintenance
- Vérifier les logs quotidiennement pour les erreurs critiques
- S'assurer que les backups BDD fonctionnent (dossier
database/backups/) - Surveiller l'espace disque du dossier
storage/ - Mettre à jour les dépendances Composer régulièrement
- Vérifier que les crons s'exécutent correctement
- Tester les webhooks de paiement après toute mise à jour
Modération du contenu
Avis entreprises
Les avis déposés par les utilisateurs peuvent être modérés via l'API :
- Approuver — L'avis reste visible
- Masquer — L'avis est caché des utilisateurs
- Signaler — Marquer comme potentiellement inapproprié
Notifications push admin
Consultez les statistiques des notifications push via l'API :
Inclut : nombre d'appareils abonnés, taux de livraison, taux d'échec, appareils désactivés automatiquement.