Skip to content

Latest commit

 

History

189 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BisoMapTech Logo

BisoMapTech

La carte interactive de la communauté tech au Congo.

Vite React TypeScript Supabase Tailwind CSS License Open Source

À propos · FonctionnalitĂ©s · Architecture · DĂ©marrage rapide · Contribuer


À propos

BisoMapTech ("biso" = "nous" en Lingala) est une plateforme open source qui cartographie et connecte la communauté informatique de la République du Congo : développeurs, administrateurs systÚmes & réseaux, professionnels de la cybersécurité, data engineers, DevOps, designers, formateurs et bien d'autres.

L'objectif est triple :

đŸ—ș VisibilitĂ© đŸ€ Connexion đŸŒ± ReprĂ©sentation
Rendre lisible la richesse de l'écosystÚme tech congolais Favoriser les rencontres, le mentorat et les collaborations Montrer que la tech au Congo ne se limite pas à Brazzaville et inspirer les prochaines générations

Fonctionnalités

  • đŸ—ș Carte interactive (Leaflet) des contributeurs et des lieux tech du Congo
  • đŸ‘€ Profils dĂ©taillĂ©s avec compĂ©tences, stack, projets et liens GitHub
  • 🔐 Authentification sĂ©curisĂ©e via Supabase Auth
  • 🔍 Recherche et filtres par ville, mĂ©tier, technologie, niveau d'expĂ©rience
  • 💬 Messagerie chiffrĂ©e de bout en bout (E2EE — ECDH P-256 + AES-GCM 256)
  • 🔔 Notifications par e-mail sur nouveaux messages (Edge Functions)
  • 🏱 Pages lieux (coworking, Ă©coles, communautĂ©s, entreprises
)
  • ⚙ Synchronisation automatique des dĂ©pĂŽts GitHub d'un profil
  • đŸ›Ąïž Espace d'administration pour la modĂ©ration
  • đŸ“± Responsive — optimisĂ© mobile, mode clair / sombre

Stack technique

Domaine Technologie
Build / Dev server Vite 7
Framework UI React 19 + TypeScript 5.9
Routing React Router 6
Styling Tailwind CSS 4 + shadcn/ui (Radix UI)
State management Zustand
Formulaires React Hook Form + Zod
Carte Leaflet + React Leaflet
Graphiques Recharts
Backend Supabase (PostgreSQL, Auth, Realtime, Storage, Edge Functions)
Tests Vitest
Déploiement Vercel

Architecture

Structure du projet

BisoMapTech/
├── public/                  # Assets statiques (logo, favicons)
├── src/
│   ├── components/          # Composants UI rĂ©utilisables
│   │   ├── filters/         #   Panneaux de filtres
│   │   ├── layout/          #   Navbar, Footer, Layout global
│   │   ├── map/             #   Couche Leaflet et marqueurs
│   │   ├── profile/         #   Formulaires et cartes de profil
│   │   └── ui/              #   shadcn/ui (Button, Input, Avatar
)
│   ├── pages/               # Pages applicatives routĂ©es
│   ├── hooks/               # Hooks React partagĂ©s
│   ├── lib/                 # Clients (Supabase, E2EE service) et utilitaires
│   ├── store/               # Stores Zustand (auth, filtres, unread
)
│   ├── types/               # Types TypeScript partagĂ©s
│   ├── App.tsx              # Configuration des routes
│   └── main.tsx             # Point d'entrĂ©e Vite
├── supabase/
│   ├── migrations/          # SchĂ©ma SQL versionnĂ© (Row Level Security)
│   └── functions/           # Edge Functions Deno
│       ├── send-message-notification/
│       └── sync-github-repos/
├── index.html
├── vite.config.ts
└── vercel.json

Flux de données

graph TD
    A[Utilisateur / Navigateur] -->|Auth JWT| B[Supabase Auth]
    A -->|RequĂȘtes REST / Realtime| C[Supabase Database\nPostgreSQL + RLS]
    A -->|Upload fichiers chiffrés| D[Supabase Storage]
    A -->|Appels SDK| E[Edge Functions Deno]
    E -->|Email| F[Service SMTP]
    E -->|API| G[GitHub API]
    C -->|Websocket Realtime| A

    style A fill:#1e293b,color:#e2e8f0
    style B fill:#3ecf8e,color:#000
    style C fill:#3ecf8e,color:#000
    style D fill:#3ecf8e,color:#000
    style E fill:#646cff,color:#fff
Loading

Chiffrement E2EE des messages

sequenceDiagram
    participant Alice
    participant Supabase
    participant Bob

    Alice->>Supabase: RécupÚre clé publique de Bob (JWK)
    Alice->>Alice: Dérive secret partagé ECDH(priv_Alice, pub_Bob)
    Alice->>Alice: Chiffre le message AES-GCM 256 bits
    Alice->>Supabase: INSERT message { cipherText, iv }

    Supabase-->>Bob: Realtime → nouveau message
    Bob->>Supabase: RécupÚre clé publique d'Alice (JWK)
    Bob->>Bob: Dérive secret partagé ECDH(priv_Bob, pub_Alice)
    Bob->>Bob: DĂ©chiffre AES-GCM → texte clair ✅

    Note over Alice,Bob: Les clés privées ne quittent jamais le navigateur (IndexedDB)
Loading

Démarrage rapide

Prérequis

  • Node.js 20+ (Vite 7 requiert Node ≄ 20.19)
  • npm (ou pnpm / yarn / bun)
  • Un projet Supabase (gratuit) pour la base de donnĂ©es et l'auth

Installation

# 1. Cloner le dépÎt
git clone https://github.com/KalelDAMBA/BisoMapTech.git
cd BisoMapTech

# 2. Installer les dépendances
npm install

# 3. Configurer les variables d'environnement
cp .env.example .env.local
# → Renseigner VITE_SUPABASE_URL et VITE_SUPABASE_ANON_KEY

# 4. Lancer le serveur de développement
npm run dev

L'application est disponible sur http://localhost:5173.

Base de données Supabase

# Lier votre projet Supabase
supabase link --project-ref <votre_project_ref>

# Appliquer les migrations SQL
supabase db push

# Déployer les Edge Functions
supabase functions deploy send-message-notification
supabase functions deploy sync-github-repos

Variables d'environnement

⚠ Ne committez jamais vos clĂ©s. Le fichier .env.local est ignorĂ© par Git.

Variable Obligatoire Description
VITE_SUPABASE_URL ✅ URL du projet Supabase
VITE_SUPABASE_ANON_KEY ✅ ClĂ© publique (anon) du projet Supabase

Scripts disponibles

Commande Description
npm run dev Démarre le serveur de développement Vite (HMR)
npm run build Vérifie les types TypeScript et génÚre la build de production
npm run preview Sert localement la build de production
npm run typecheck Vérification des types TypeScript uniquement
npm run test Exécute la suite de tests Vitest

Contribution

Toutes les contributions sont les bienvenues, quel que soit votre profil dans l'informatique.

Ajouter votre profil sur la carte

L'ajout de profil se fait directement depuis l'application :

  1. Rendez-vous sur l'instance déployée (ou votre instance locale).
  2. Créez un compte via la page Connexion.
  3. Suivez le parcours d'onboarding pour renseigner votre métier, votre stack, votre ville et un point de localisation public.
  4. Votre profil apparaßt sur la carte une fois publié.

Contribuer au code

flowchart LR
    A[Fork le dépÎt] --> B[Créer une branche\nfeat/ma-fonctionnalite]
    B --> C[Développer\n+ Tests]
    C --> D[npm run typecheck\nnpm run build\nnpm run test]
    D --> E[Ouvrir une Pull Request\nvers main]
    E --> F[Review & Merge ✅]
Loading
  1. Forkez le dépÎt et créez une branche depuis main : git checkout -b feat/ma-fonctionnalite
  2. Respectez la structure des dossiers et le style de code existant (TypeScript strict, composants fonctionnels, Tailwind utility-first)
  3. Vérifiez la build et les tests avant de pousser :
    npm run typecheck
    npm run build
    npm run test
  4. Ouvrez une Pull Request avec un titre clair au format Conventional Commits (feat:, fix:, docs:, refactor:
)

Domaines couverts

DĂ©veloppement · SystĂšmes & RĂ©seaux · CybersĂ©curitĂ© · Data / IA · DevOps / Cloud · Support / Helpdesk · Design / UX · Hardware / Électronique · Gestion de projet / Product · Enseignement / Formation · No-code / Automatisation


Sécurité & vie privée

Pour protéger les contributeurs, quelques rÚgles s'appliquent à toute donnée de localisation publiée :

  • ✅ Utilisez les coordonnĂ©es du centre de votre ville ou d'un point de repĂšre public (mairie, place, monument, universitĂ©)
  • ❌ N'indiquez jamais votre adresse personnelle ni celle de votre employeur
  • ❌ Ne rĂ©utilisez pas les coordonnĂ©es d'un autre contributeur

💡 gps-coordinates.net permet de trouver rapidement les coordonnĂ©es d'un point public.

CoordonnĂ©es de rĂ©fĂ©rence — RĂ©publique du Congo

Ville Département Latitude Longitude
Brazzaville Brazzaville -4.2634 15.2429
Pointe-Noire Pointe-Noire -4.7889 11.8653
Dolisie Niari -4.1995 12.6667
Nkayi Bouenza -4.1842 13.2883
Madingou Bouenza -4.1550 13.5500
Owando Cuvette -0.4819 15.9000
Ouesso Sangha 1.6136 16.0517
Impfondo Likouala 1.6186 18.0622

Pour signaler une vulnérabilité de sécurité, ouvrez une issue GitHub marquée security.


Feuille de route

  • Documentation publique de l'API (schĂ©ma RLS, tables, vues)
  • Internationalisation (FR / EN / Lingala)
  • Application mobile (PWA puis natif)
  • Statistiques publiques de l'Ă©cosystĂšme tech congolais
  • Annuaire des entreprises et structures tech
  • Programme de mentorat intĂ©grĂ©
  • SystĂšme de badges et de reconnaissance communautaire

Les suggestions sont les bienvenues : ouvrez une issue pour en discuter.


Licence

DistribuĂ© sous licence MIT. Vous ĂȘtes libre d'utiliser, modifier et redistribuer ce projet en conservant la mention de copyright d'origine.


Fait avec ❀ par et pour la communautĂ© tech congolaise

BisoMapTech — Ensemble, on va plus loin.

Test CI workflow

About

đŸ—ș BisoMapTech est une plateforme moderne dĂ©diĂ©e Ă  la communautĂ© technologique congolaise, conçue pour connecter les talents, faciliter les collaborations professionnelles et offrir une communication sĂ©curisĂ©e en temps rĂ©el grĂące Ă  une infrastructure cloud moderne et des Ă©changes chiffrĂ©s.

Topics

Resources

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages