Skip to content

Repository files navigation

CamerMove

Version License Contribute Documentation

Plateforme multi-services dédiée à la mobilité, au voyage et aux services associés au Cameroun.

CamerMove réunit six services autour d'un seul compte : transport interurbain (produit héros), hôtels & appartements, location de véhicules, transport de colis, assurance voyage, billetterie événements. Le tout avec paiement Mobile Money et billet QR.

Réinventons la mobilité africaine.

Services

Service Description
🚌 Transport Réservation de bus interurbain (Yaoundé ↔ Douala)
🏨 Hôtels Hébergements vérifiés dans tout le Cameroun
🚗 Location Véhicules avec prise en charge aéroport
📦 Colis Envoi de colis avec suivi en temps réel
🛡️ Assurance Assurance voyage dès 2 500 XAF
🎫 Événements Billetterie événementielle

Structure

  • apps/api — Fastify REST API (toute la logique métier)
  • apps/web — Next.js 16 client web (React 19, Tailwind v4, shadcn/ui)
  • apps/worker — Kafka consumer + BullMQ workers (hold-expiry, reconciliation, trip reminders) + heartbeat
  • packages/db — Prisma + repositories (single data access layer)
  • packages/config — env Zod-validé (loadEnv)
  • packages/observability — prom-client + OpenTelemetry
  • packages/events — Kafka topics + producers
  • packages/media — MinIO / S3 object storage
  • packages/frontend — composants UI partagés (web)
  • packages/shared — money/commission math + BullMQ queue definitions (/queues subpath, server-only)

Stack

Layer Technology
Frontend Next.js 16, React 19, Tailwind v4, shadcn/ui, GSAP, Lenis, Framer Motion
API Fastify 5, Prisma 6, Postgres 16, ioredis, kafkajs, Zod
Async Kafka 3.7 (events), BullMQ (jobs), Redis 7 (cache / rate limit / idempotency)
Storage MinIO (S3-compatible)
Infra Docker Compose, Prometheus, Grafana, OpenTelemetry
Tests Vitest (unit + integration)

Quick Start

cp .env.example .env
pnpm install
bash scripts/dev-up.sh         # or: .\scripts\dev-up.cmd on PowerShell

Le script (idempotent) démarre Postgres/Redis/Kafka/MinIO + lance API/worker/web, applique les migrations, et seed la base si vide. Voir LAUNCH.md.

Comptes de démo (après pnpm seed:rich)

Rôle Email Mot de passe
Super admin super@camermove.cm Super123!
Admin admin@camermove.cm Admin123!
Transporteur partner@camermove.cm Partner123!
Voyageur user@camermove.cm User123!

Le seed couvre les six services : 4 transporteurs / 336+ trajets, 6 hôtels, 8 véhicules, 2 opérateurs colis, 5 événements, 5 polices d'assurance, plus les paiements / billets / notifications / audit logs correspondants. Voir docs/DATABASE.md.

URLs locales

Service URL
Web (app voyageur) http://localhost:3002
API http://localhost:3000
Swagger / OpenAPI http://localhost:3000/docs
Health http://localhost:3000/health
MailHog (emails) http://localhost:8025
MinIO console http://localhost:9001 (minioadmin/minioadmin)
Kafka UI http://localhost:8080
Prometheus http://localhost:9090
Grafana http://localhost:3001 (admin/admin)

Design System

Swiss / Bauhaus minimalism. Helvetica-style typography. Cool gray, pure white, natural wood. Hairlines, zero radius, no shadows, numbered section heads.

Voir docs/DESIGN-SYSTEM.md pour les tokens, le grid, la typographie, et les composants. Source de vérité : apps/web/app/globals.css (Next.js) + dist/assets/css/main.css (static deploy).

Documentation

Scripts utiles

pnpm dev                    # start all
pnpm build                  # production build
pnpm -r typecheck           # 0 errors requis
pnpm -r test                # tests
pnpm seed                   # seed minimal (transport)
pnpm seed:rich              # seed complet 6 services (idempotent)
pnpm seed:verify            # vérifie volumes + idempotence du seed riche
pnpm smoke                  # smoke tests auth + search
pnpm smoke:auth
pnpm smoke:search
pnpm smoke:tickets
pnpm smoke:dashboard
pnpm swagger:export         # openapi.json

Contribution

Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour les directives.

Licence

Ce projet est sous licence MIT.

Changelog

Consultez CHANGELOG.md pour l'historique des versions.

Contact


CamerMove — Réinventons la mobilité africaine 🇨🇲

Releases

Packages

Contributors

Languages