EasyPharma — Medicine Search & Ordering
3 platforms delivered (Spring Boot, Angular, Flutter) for medicine search and ordering in Cameroon — team of 4 coordinated via GitHub Actions, 12+ merged PRs, SonarQube and OWASP ZAP.
My role
Tech Lead & Full-Stack Developer
Period
November 2025 — January 2026
Platforms delivered
Spring Boot backend, Angular web, Flutter mobile — one shared API
Merged pull requests
Team of 4 coordinated via feature branches + GitHub Actions CI
Backend tests
Unit and integration tests (JUnit 5, Mockito, AssertJ)
Quality & security
SonarQube in CI, OWASP ZAP, multi-service Docker Compose
Online pharmacy management and medicine ordering application delivered on 3 platforms (Spring Boot backend, Angular web, Flutter mobile) by a team of 4 developers I coordinated: feature-branch organization, review and merge of 12+ pull requests, GitHub Actions pipeline validating every contribution, SonarQube analysis and OWASP ZAP testing.
01. The Context — Finding a Medicine in Cameroon
Finding a medicine in Cameroon usually means calling pharmacies one by one — without knowing who has it in stock, at what price, or where. EasyPharma solves this: a medicine search and ordering application connecting patients, pharmacies and couriers. A Semester 1 group project (EADL), run by a team of 4 developers with a three-platform delivery requirement: backend, web and mobile.
"Delivering the same product on three platforms imposes one discipline: a single, stable API that web and mobile consume identically."
02. Architecture, Deliverables & Team Coordination
I took on the Tech Lead role: organizing tasks into feature branches, reviewing code and merging each member's contributions through the GitHub Actions pipeline (backend build, frontend build, SonarQube analysis) — no PR passed without a green build. On the backend, a clean 4-layer architecture (Spring Boot 3, Java 21) with JWT, PostgreSQL/PostGIS for geographic search, Flyway migrations, Swagger and 75 tests. The web is Angular 21 (Cypress, Vitest) and the mobile app is Flutter for patient and courier roles: cart with stock verification grouped by pharmacy, orders with partial-success handling, color-coded history.
Spring Boot Clean Architecture
4 layers (presentation, application, domain, infrastructure), JWT, PostgreSQL/PostGIS, Flyway, Swagger.
Team coordination via GitHub
Feature branches, 12+ reviewed and merged PRs, demanding GitHub Actions CI (build + tests + SonarQube).
Intelligent search
Medicines found by name, symptom or geographic proximity (PostGIS).
DevSecOps quality
SonarQube (backend + frontend), OWASP ZAP penetration tests, multi-service Docker Compose.
03. Results & Takeaways
The product shipped on three platforms with measured quality: 75 backend tests, SonarQube in CI, ZAP for security. Coordinating a team on a demanding git workflow confirmed that the Tech Lead role goes beyond code — splitting work into coherent branches, making the CI non-negotiable, and integrating contributions of varying quality without breaking overall coherence.
A similar project?
Let's discuss your needs. I will get back to you within 24 hours with a concrete analysis.
