Logo Lanfrica

amazingsmj/NetRide-backend

Domain:

mobilitydigital infrastructure

Record type:

software
Creator:
ama
Host:
NetRide (marketed under the brand name Waya) is an urban and intercity carpooling and intercity bus booking platform, tailored for key routes in Cameroon (Douala, Yaoundé, Bafoussam, etc.). # 🚗 Waya / NetRide Backend — API REST & Service Géospatial PostGIS --- ## 📌 Présentation du Projet **Waya / NetRide** est la plateforme numérique de **covoiturage urbain et interurbain** couplée à la **réservation de bus intercités** (Douala, Yaoundé, Bafoussam, etc.). Ce dépôt contient le **serveur backend Spring Boot 3.x** développé selon les principes de la **Clean Architecture** (4 couches), intégrant des requêtes géospatiales **PostGIS** (`ST_DWithin`, `ST_Distance`), la sécurité **Spring Security JWT**, les communications temps réel **WebSocket STOMP**, l'instrumentation **Micrometer / Prometheus** et l'analyse de qualité continue sur **SonarCloud.io**. --- ## 🏗️ Architecture & Design Patterns Le backend suit strictement la **Clean Architecture (Domain-Driven Design Light)** en 4 couches découplées : ``` netride-backend/src/main/java/com/waya/netride_backend/ ├── domain/ # 🟢 Couche Domaine (Métier Pur & Contrats) │ ├── enums/ # UserRole, VerificationStatus, TripStatus, TripType, BookingStatus, PaymentStatus, SosStatus... │ ├── event/ # 🔔 Observer Pattern (SosTriggeredEvent, NotificationEvent) │ ├── exception/ # Exceptions Métiers (InvalidStateTransitionException, InsufficientSeatsException...) │ ├── factory/ # 🏭 Factory Method Pattern (TripFactory) │ ├── state/ # 🔄 State Pattern (TripState: Draft, Published, InProgress, Completed, Cancelled) │ └── strategy/ # 💳 Strategy Pattern (PaymentStrategy, MockMobileMoneyPaymentStrategy) ├── infrastructure/ # 🔵 Couche Infrastructure (Persistance, Sécurité, Adapteurs, WebSockets) │ ├── adapter/ # 🔌 Adapter Pattern (SmsAdapter, MockSmsAdapter) │ ├── config/ # 📡 Broker WebSocket STOMP (WebSocketConfig /ws) │ ├── persistence/ # JPA Entities (UserEntity, TripEntity, BookingEntity, SosAlertEntity, ReviewEntity) & Repositories PostGIS │ └── security/ …

Languages