DevBénin
Nouveau|Challenges de code hebdomadaires

Construisons l'avenir
Tech du Bénin ensemble

Rejoignez la plus grande communauté de développeurs au Bénin. Apprenez, partagez vos connaissances et collaborez sur des projets open source innovants.

Notre Vision

Notre Mission :
Connecter, Former, Propulser

DevBénin est le catalyseur de l'écosystème tech béninois. Nous créons un environnement propice à l'innovation, à l'apprentissage et à la collaboration professionnelle.

Collaboration développeurs
Communauté & Réseau
  • Connectez-vous avec des milliers de développeurs partageant les mêmes idées, du junior au senior expert.

  • Trouvez des mentors, des partenaires pour vos projets ou recrutez les meilleurs talents locaux.

Rejoindre le réseau
Apprentissage Tech
Apprentissage & Ressources
  • Accédez à des ressources exclusives, des tutoriels, et participez à des workshops pratiques.

  • Relevez des défis de code hebdomadaires pour affûter vos compétences et gagner en visibilité.

Explorer les ressources
Articles Récents

Le Coin Blog

Un espace dédié à l'innovation, l'apprentissage et le partage de connaissances qui font la différence dans l'écosystème tech béninois.

Voir tous les articles
Next.js 16 : Cache Components et Performance Révolutionnaire

Next.js 16 : Cache Components et Performance Révolutionnaire

Next.js 16 transforme radicalement le développement web avec Cache Components ("use cache"), Turbopack stable par défaut, proxy.ts, DevTools MCP avec IA, et React Compiler intégré. Découvrez comment ces nouveautés simplifient le code tout en multipliant les performances par 5-10x.

Lire l'article
🚀 Laravel : bien plus qu’un framework, une expérience développeur !

🚀 Laravel : bien plus qu’un framework, une expérience développeur !

Beaucoup de développeurs découvrent Laravel pour sa simplicité, mais restent pour sa puissance et sa cohérence.

Lire l'article
Kotlin vs Flutter : Quel Choix pour le Développement Mobile en 2025 ?

Kotlin vs Flutter : Quel Choix pour le Développement Mobile en 2025 ?

Kotlin natif ou Flutter cross-platform ? Ce guide compare les deux approches pour vous aider à choisir la meilleure technologie pour votre projet mobile. Performance, expérience développeur, écosystème et cas d'usage concrets pour une décision éclairée.

Lire l'article
Développeur au Bénin : Quelles technologies apprendre pour trouver un emploi de nos jours  ?

Développeur au Bénin : Quelles technologies apprendre pour trouver un emploi de nos jours ?

Le marché de la tech au Bénin est en pleine croissance, mais quelles compétences garantissent réellement un emploi en de nos jours ? Basé sur une analyse concrète de l'écosystème local, cet article sert de feuille de route stratégique. Découvrez les fondamentaux indispensables, les stacks les plus demandés par les recruteurs (Laravel, React, Flutter), et les technologies d'avenir pour construire une carrière de développeur solide et pérenne au Bénin.

Lire l'article
Nodus AI  : Et si on tuait le "syndrome de la page blanche" pour les développeurs ?

Nodus AI : Et si on tuait le "syndrome de la page blanche" pour les développeurs ?

Lire l'article
Open Source

Projets de la communauté

Découvrez les dernières créations des développeurs du Bénin. Open source, startups et expérimentations.

Voir tous les projets
✨ Prompt Studio - L'Artisan des Prompts Parfaits
✨ Prompt Studio - L'Artisan des Prompts Parfaits

Prompt Studio est une application web intuitive qui aide les créateurs de contenu à générer des prompts efficaces pour les intelligences artificielles.

Ce que fait l'application : Génération de prompts pour différents types de contenu : posts Instagram, pubs Facebook, scripts TikTok, emails marketing, descriptions produit, idées de contenu, légendes Interface simplifiée : sélection du type de contenu → remplissage de 1-2 champs essentiels → génération instantanée Options avancées masquées par défaut pour éviter la surcharge cognitive Résultats professionnels prêts à copier et utiliser avec ChatGPT, Claude ou autres IA Philosophie :

Rendre le prompt engineering accessible à tous, sans expertise technique préalable, en privilégiant la simplicité et l'efficacité.

Prédire si vous auriez survécu à bord du titanic..
Prédire si vous auriez survécu à bord du titanic..

𝗘𝘀𝘁-𝗰𝗲 𝗾𝘂𝗲 𝘃𝗼𝘂𝘀 𝗽𝗲𝗻𝘀𝗲𝘇 𝗾𝘂𝗲 𝘃𝗼𝘂𝘀 𝗮𝘂𝗿𝗶𝗲𝘇 𝘀𝘂𝗿𝘃é𝗰𝘂 à 𝗯𝗼𝗿𝗱 𝗱𝘂 𝘁𝗶𝘁𝗮𝗻𝗶𝗰 ? 😆😹

Eh bien, moi, j’ai décidé de mettre l’intelligence artificielle à l’épreuve ! Testez mon modèle d'IA ici 👇🏽 https://titanic-app6.streamlit.app

Entrez votre âge, votre sexe: 0 si vous êtes un homme et 1 si vous êtes une femme !! et votre classe de voyage …. et découvrez si l’IA pense que vous auriez survécu !🔥🎉

Skill-Flash
Skill-Flash
SkillFlash Academy ⚡

Une plateforme de micro-learning moderne, rapide et gamifiée

Conçue pour offrir une expérience éducative premium et interactive

Démo Live

🔥 DÉFI RELEVÉ : Bénin 🇧🇯 vs Côte d'Ivoire 🇨🇮

Il y a 7 jours, j'ai lancé un défi à Auguste Adou : créer en une semaine une plateforme de micro-learning complète et fonctionnelle.

🎯 Le Challenge

Mission : Concevoir et développer une application de micro-formation permettant aux utilisateurs de suivre des mini-cours, de tester leurs connaissances et d'obtenir des certifications.

Les Règles :

⏱️ Durée : 7 jours (168 heures chrono) 🎨 Liberté : Même concept, exécution libre 🛠️ Stack : Aucune contrainte technique imposée 🏆 Juge : La communauté tech béninoise 🇧🇯 et ivoirienne 🇨🇮 🎉 Résultat : SkillFlash

7 jours. 0 compromis. 100% passion.

Aujourd'hui, je suis fier de présenter SkillFlash ⚡ - une plateforme complète qui prouve qu'avec de la détermination, on peut transformer une idée en réalité fonctionnelle en quelques jours.

✨ Ce que SkillFlash Propose 🎓 Fonctionnalités Principales

| Fonctionnalité | Description | Statut | |----------------|-------------|--------| | 🎯 Micro-modules | Cours ultra-ciblés de 15-20 minutes maximum | ✅ Opérationnel | | 📝 Quiz intelligents | QCM + réponses ouvertes analysées par mots-clés | ✅ Opérationnel | | 🎓 Certifications | Certificats PDF avec QR Code de vérification | 🔧 Fonctionnel (design à améliorer) | | 🏆 Gamification | Système de points, classements et badges | ✅ Opérationnel | | 🎨 Interface moderne | Design épuré et intuitif (React + TypeScript) | ✅ Opérationnel | | 📱 Responsive | Optimisé mobile-first pour tous les écrans | ✅ Opérationnel | | 💾 Mode hors ligne | Progression sauvegardée localement | ✅ Opérationnel | | 🔐 Auth sécurisée | Authentification via Supabase | ✅ Opérationnel |

📊 Quelques Chiffres 📦 3 800+ lignes de code TypeScript 🏗️ Architecture modulaire et scalable 🔐 Système d'authentification sécurisé 📄 Génération automatique de certificats PDF 💾 Mode hors ligne pour la progression 🎨 15+ composants réutilisables 📱 100% responsive (mobile-first) ⚡ Performance optimisée avec Vite 🚀 Stack Technique Frontend

| Technologie | Usage | Version | |-------------|-------|---------| | React 18 | Framework principal | ^18.3.1 | | TypeScript | Typage strict | ^5.6.2 | | Vite | Build tool ultra-rapide | ^5.4.2 | | Tailwind CSS | Styling utility-first | ^3.4.1 | | Shadcn UI | Composants UI (Radix UI) | Latest | | Lucide React | Bibliothèque d'icônes | ^0.460.0 |

État & Backend

| Service | Usage | |---------|-------| | Supabase Auth | Authentification (Email/Password) | | TanStack Query | Gestion du cache et des états | | localStorage | Sauvegarde locale de la progression |

Utilitaires

| Package | Usage | |---------|-------| | jsPDF | Génération de certificats PDF | | qrcode.react | QR Codes de vérification | | Zod | Validation de schémas | | React Router | Navigation SPA | | Sonner | Notifications toast |

🏗️ Architecture du Projet skill-flash/ ├── public/ # Assets statiques et données │ ├── courses/ # Définitions des cours (JSON) │ │ ├── index.json # Catalogue principal │ │ └── [courseId]/ # Dossier par cours │ │ ├── chapters.json # Liste des chapitres │ │ └── content/ # Contenu Markdown │ └── tests/ # Bases de données des quiz │ ├── qcm/ # Questions à choix multiples │ └── qr/ # Questions à réponses ouvertes │ ├── src/ │ ├── components/ # Composants réutilisables │ │ ├── ui/ # Composants de base (Shadcn) │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── progress.tsx │ │ │ └── ... │ │ ├── landing/ # Sections de la landing page │ │ │ ├── Hero.tsx │ │ │ ├── Features.tsx │ │ │ └── ... │ │ ├── Navbar.tsx # Navigation principale │ │ └── ErrorBoundary.tsx # Gestion des erreurs │ │ │ ├── hooks/ # Logique métier (Custom Hooks) │ │ ├── useAuth.ts # Gestion de l'authentification │ │ ├── useProgress.ts # Progression utilisateur │ │ └── useProfile.ts # Profil et points │ │ │ ├── lib/ # Clients et utilitaires │ │ ├── supabase.ts # Client Supabase │ │ ├── courses.ts # API des cours │ │ ├── pdf.ts # Génération de certificats │ │ └── utils.ts # Fonctions utilitaires │ │ │ ├── pages/ # Vues principales (Pages) │ │ ├── Landing.tsx # Page d'accueil │ │ ├── Dashboard.tsx # Tableau de bord │ │ ├── Catalog.tsx # Catalogue de cours │ │ ├── Course.tsx # Détails d'un cours │ │ ├── Quiz.tsx # Interface de quiz │ │ └── Profile.tsx # Profil utilisateur │ │ │ ├── types/ # Interfaces TypeScript │ │ └── index.ts # Types globaux │ │ │ ├── App.tsx # Composant racine │ ├── main.tsx # Point d'entrée │ └── index.css # Styles globaux │ ├── .env.example # Variables d'environnement ├── package.json # Dépendances du projet ├── tsconfig.json # Configuration TypeScript ├── tailwind.config.js # Configuration Tailwind ├── vite.config.ts # Configuration Vite └── vercel.json # Configuration Vercel 📖 Documentation Technique 1️⃣ Définition d'un Cours

Fichier : public/courses/index.json

Le catalogue central. Chaque objet définit une carte de cours visible dans le catalogue.

{ "id": "python", "title": "Python Intro", "description": "Introduction à Python pour le scripting.", "category": "development", "icon": "Terminal", "color": "python", "duration": "2 heures", "difficulty": "Débutant", "chapters": 10, "totalQuestions": 10 }

Propriétés :

id : Identifiant unique (utilisé dans l'URL) title : Titre affiché sur la carte description : Courte description (2-3 lignes) category : Catégorie (development, design, marketing, etc.) icon : Nom d'icône Lucide React color : Classe Tailwind pour la couleur du badge duration : Durée estimée du cours difficulty : Niveau (Débutant, Intermédiaire, Avancé) chapters : Nombre de chapitres totalQuestions : Nombre total de questions dans le quiz final 2️⃣ Structure des Chapitres

Fichier : public/courses/[courseId]/chapters.json

Définit la liste des modules d'un cours spécifique.

{ "courseId": "python", "chapters": [ { "id": 1, "title": "Introduction & Syntaxe", "description": "Premiers pas avec Python : variables, types, opérateurs.", "duration": "60 min" }, { "id": 2, "title": "Structures de Contrôle", "description": "Conditions, boucles et gestion du flux.", "duration": "45 min" } ] }

Contenu des chapitres : Le contenu de chaque chapitre est stocké dans public/courses/[courseId]/content/chapter-[id].md au format Markdown.

3️⃣ Format des Quiz QCM

Fichier : public/tests/qcm/[courseId]_qcm.json

Questions à choix multiples avec réponse unique.

{ "title": "Expertise Python", "passingScore": 70, "questions": [ { "id": 1, "question": "Quel mot-clé est utilisé pour créer une fonction en Python ?", "options": ["func", "def", "function", "lambda"], "correctAnswer": 1, "explanation": "Le mot-clé 'def' est utilisé pour définir une fonction en Python." } ] }

Propriétés :

title : Titre du quiz passingScore : Score minimum pour réussir (en %) questions : Tableau de questions id : Identifiant unique question : Énoncé de la question options : Tableau de réponses possibles correctAnswer : Index de la bonne réponse (commence à 0) explanation : Explication de la bonne réponse (optionnel) 4️⃣ Format des Quiz QR (Réponses Ouvertes)

Fichier : public/tests/qr/[courseId]_qr.json

Questions nécessitant une réponse rédigée, analysée par mots-clés.

{ "title": "Logique Python Avancée", "questions": [ { "id": 1, "question": "Pourquoi utiliser l'instruction 'with' pour ouvrir un fichier en Python ?", "expectedKeywords": ["fermeture", "automatique", "sécurité", "contexte"], "sampleAnswer": "L'instruction 'with' garantit que le fichier est fermé automatiquement après utilisation, même en cas d'erreur, ce qui améliore la sécurité et évite les fuites de ressources." } ] }

Propriétés :

title : Titre du quiz questions : Tableau de questions id : Identifiant unique question : Énoncé de la question expectedKeywords : Mots-clés attendus dans la réponse sampleAnswer : Exemple de bonne réponse (pour référence)

Algorithme de notation :

score = (nombre de mots-clés trouvés / nombre total de mots-clés) * 100 🎮 Fonctionnalités Avancées 🏆 Système de Gamification

Le système de points motive les utilisateurs à progresser :

| Action | Points Gagnés | |--------|---------------| | Compléter un chapitre | +10 points | | Réussir un quiz de module | +10 points | | Réussir le test de certification | +150 points |

Classement en temps réel : Le leaderboard affiche les 10 meilleurs utilisateurs, mis à jour automatiquement via le hook useProfile.

🎓 Système de Certification

Chaque utilisateur qui réussit un test final (score ≥ 80%) obtient un certificat PDF professionnel incluant :

Nom complet de l'utilisateurTitre du coursScore final obtenuDate d'émissionQR Code unique pour vérification ✅ Code de vérification alphanumérique

Processus de vérification :

Scanner le QR Code du certificat Redirection vers /verify?d=[BASE64_DATA] Décodage des données cryptées Affichage des informations de certification

Note : Le design du certificat PDF est fonctionnel mais sera amélioré dans une prochaine version pour un rendu plus professionnel.

💾 Mode Hors Ligne & Résilience

Sauvegarde automatique :

La progression est sauvegardée en temps réel dans localStorage Les réponses aux quiz sont stockées localement Possibilité de reprendre un test interrompu

Gestion des erreurs : Un ErrorBoundary global capture toutes les erreurs non gérées pour éviter les écrans blancs et offrir une expérience utilisateur fluide.

🛠️ Installation & Développement Prérequis Node.js : v18.x ou supérieur npm ou yarn ou pnpm Compte Supabase (gratuit) 1. Cloner le Repository git clone https://github.com/REBCDR07/Skill-Flash.git cd Skill-Flash 2. Installer les Dépendances npm install # ou yarn install # ou pnpm install 3. Configuration de l'Environnement

Créer un fichier .env à la racine du projet :

VITE_SUPABASE_URL=your_supabase_project_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key

Obtenir vos clés Supabase :

Créer un compte sur supabase.com Créer un nouveau projet Copier l'URL et la clé anonyme depuis Project Settings → API 4. Lancer le Serveur de Développement npm run dev

L'application sera accessible sur http://localhost:8080

5. Build de Production npm run build

Le dossier dist/ contiendra les fichiers prêts pour le déploiement.

📜 Scripts Disponibles

| Commande | Description | |----------|-------------| | npm run dev | Lance le serveur de développement Vite | | npm run build | Génère le bundle de production | | npm run preview | Prévisualise le build de production localement | | npm run lint | Vérifie la qualité du code avec ESLint | | npm run type-check | Vérifie les types TypeScript |

YAMD Portfolio
YAMD Portfolio

Portfolio personnel conçu pour présenter mon parcours, mes compétences et mes projets. Il met en avant mon expertise en développement web et applicatif à travers une interface moderne, claire et professionnelle.

Communauté

Top Talents & Mentors

Rencontrez les développeurs expérimentés et mentors qui façonnent l'avenir de la tech au Bénin.

Steven KOULO

Steven KOULO

5 ans d'xp

Fort de 4+ années d'expérience en développement web, je me spécialise dans la création d'applications modernes, performantes et sécurisées. Mon expertise couvre l'ensemble du stack technique : du design UX/UI au déploiement en production, en passant par l'architecture logicielle et l'optimisation des performances. Mais aussi la sécurité des applications. Je privilégie une approche agile et collaborative, en maintenant une communication transparente avec mes clients pour garantir des résultats qui dépassent leurs attentes.

GANZINME Kry's Dario

GANZINME Kry's Dario

12 ans d'xp

Passionné de la tech et des jeux vidéos

Jourdan Totonde

Jourdan Totonde

5 ans d'xp

Passionné de code et d'innovation technologique.

Roger Gnanih

Roger Gnanih

5 ans d'xp

Développeur Fullstack, mon parcours m’a amené à concevoir des sites, des API et des applications mobiles. Je m’investis dans chaque projet avec un esprit d’équipe, une culture du résultat et un souci constant du détail. Mon objectif : créer des solutions digitales utiles, humaines et durables, qui ont un véritable impact dans la vie quotidienne.

Ronaldo Awademe

Ronaldo Awademe

5 ans d'xp

Explicite is better than implicit.

Jules-christ GBASSI

Jules-christ GBASSI

5 ans d'xp

Développeur passionné par le web et les technologies modernes. J’aime créer des projets utiles, apprendre en continu et partager mes connaissances.

Rejoignez-nous

Prêt à transformer votre carrière ?

Rejoignez la communauté des développeurs béninois. Partagez vos projets, apprenez des meilleurs experts et développez votre réseau professionnel dès aujourd'hui.