PharmaCare
Medication management with a donation pipeline for unused stock
React · Vite · TypeScript · Tailwind CSS · Spring Boot 3 · Java 17 · PostgreSQL · Spring Security · Maven
PharmaCare is a full-stack medication management platform: a Spring Boot 3 backend on Java 17, a React and TypeScript frontend built with Vite and Tailwind, and PostgreSQL underneath.
Two problems, one system
Users add and track medications with dosage and frequency schedules, set customisable reminders, and view an adherence dashboard. A rewards system gives points and achievements for consistent adherence. For families, PharmaCare supports adding members with permission-based access, so a caregiver can manage medications and reminders for the people they look after.
The standout feature is the donation system. Users list unused, unexpired medications for donation, and pharmacies get a dedicated portal to review, accept or reject donations and track statistics — turning what would otherwise be wasted medicine into a resource for someone who needs it. That requires two distinct role-based interfaces over one dataset, which is where most of the authorisation complexity lives.
Auth and API surface
Authentication runs through Spring Security with JWT plus Google OAuth2, and the REST API is fully documented with Swagger and OpenAPI. Configuration is split so that secrets — database credentials, JWT signing key, OAuth client secret, SMTP password — are supplied by environment variables or a gitignored local properties file rather than committed, which is the kind of thing that is boring to do and expensive to skip.