Project overview
Intended market
Pharmacy retailers that want to evaluate a customer-facing medicine catalogue and multi-branch dispensing and operations workflows. The live sample is for product demonstration; buyer workflow, hosting, database, regulatory, and clinical requirements would need to be agreed before production adaptation.
Engineering responsibility
Frontier DevConsults-owned product demonstration. This case study documents capabilities present in the Renewed Health Pharmacy repository and demo interface. No client engagement, deployment outcome, business result, or performance result is claimed.
Problem or opportunity
The demo models common digital pharmacy workflows: finding products, distinguishing prescription-only items, selecting a branch, submitting a prescription for pharmacist review, following an order, and coordinating inventory and point-of-sale operations. The project does not claim measured customer demand or a specific buyer's operational results.
Objectives
- Present a searchable pharmacy catalogue with synthetic demo products and branch context.
- Separate over-the-counter browsing from prescription-only medicine workflows.
- Demonstrate prescription submission and pharmacist review before dispensing prescription-only items.
- Represent stock by branch and track batches through receiving, FEFO allocation, quarantine, and inter-branch transfer workflows.
- Demonstrate customer order follow-up and staff fulfilment paths.
- Provide role-separated pharmacist, cashier, inventory, fulfilment, and owner workflows.
- Show a browser-based Tele-Pharmacist video consultation workflow that requires camera and microphone access.
- Keep demo data synthetic and defer buyer-specific managed database and service-provider choices until buyer requirements are known.
Challenges and constraints
- The seeded catalogue, inventory, branch, patient, prescription, and staff records are synthetic demonstration data; they are not a live pharmacy feed.
- The repository documents a local disk-backed SQLite server. Durable database behavior for the Vercel-hosted demo has not been verified, and no buyer-selected managed database is connected.
- The WebRTC consultation path includes browser video and WebSocket signalling code, but an external TURN relay is not configured and an end-to-end remote call has not been validated.
- No load, latency, availability, or production-scale benchmark evidence is recorded.
- A live clinical service would require buyer-specific licensed staffing, clinical governance, privacy, regulatory, support, and operational configuration.
- No buyer-specific identity, payments, or external pharmacy-system integration is configured in the demo.
Engineering approach
The code separates the customer storefront from role-protected operational workspaces. The storefront supports catalogue search, category and OTC/POM filters, branch selection, prescription submission, and order follow-up. The server code supplies Express API routes and WebSocket events for application workflows. SQLite is used by the documented local demo server; a PostgreSQL/Supabase schema file is present as a migration option, not as a connected buyer database. The Tele-Pharmacist path uses browser WebRTC media with WebSocket signalling and now requires camera and microphone access rather than falling back to audio-only. Demo limitations are documented instead of being presented as production integrations.
Architecture
Architecture narrative
React/Vite customer interface with a Node.js/Express API and WebSocket server in the repository. The documented local server stores demo state in a disk-backed SQLite database. The public demo is hosted on Vercel; durable hosted server/database behavior and buyer-specific external integrations are not verified.
frontend
React 19, TypeScript, Vite 8, Tailwind CSS 4; Lucide React icons, Motion, and vite-plugin-pwa are listed in package.json.
backend
Node.js server code with Express 4 REST routes and the ws WebSocket server. Staff operations are guarded by server-side session and role middleware in the source.
database
The repository documents the local runtime database as SQLite via Node.js built-in node:sqlite at data/pharmacy.db, with WAL mode and foreign-key enforcement. schema.sql contains PostgreSQL DDL for a possible migration; no buyer-selected managed database is connected. Persistence of the public Vercel demo has not been verified.
infrastructure
Public portfolio demo deployed at renewed-health-pharmacy.vercel.app. Production infrastructure and durable stateful backend configuration remain buyer-specific and unverified.
services
Customer product catalogue, prescription intake and pharmacist review, customer order tracking, branch-aware inventory, fulfilment, point of sale, audit records, and Tele-Pharmacist video consultation workflow.
integrations
Browser WebRTC audio/video with WebSocket signalling is implemented in source. TURN configuration is supported but requires external provider credentials for reliable cross-network relay; it is not configured in the demo. No buyer-specific payment, ERP, or pharmacy-system integration is claimed.
Engineering decisions
Keep sample records synthetic.
Reason: The portfolio build is a buyer-facing demonstration and has no real pharmacy or patient dataset.
Engineering benefit: The demo can be shown without representing seeded identities, medicines, or activity as real customer records.
Use SQLite in the documented local demo server and include a PostgreSQL migration schema separately.
Reason: The repository provides a self-contained demonstration runtime while leaving the managed database provider open for buyer requirements.
Engineering benefit: Avoids committing the buyer to Supabase, AWS, MongoDB, or another managed service before requirements are known.
Gate prescription-only dispensing behind pharmacist review.
Reason: The code marks POM items and routes prescriptions through a staff pharmacist review workflow.
Engineering benefit: The demo does not present automated AI diagnosis or prescription approval as a capability.
Track stock at branch and expiry-batch level.
Reason: The schema and workflows include per-branch batches, FEFO allocation, transfers, and quarantine states.
Engineering benefit: The operations demo can represent stock movements and expiry handling with synthetic records.
Use WebRTC media with WebSocket signalling for Tele-Pharmacist.
Reason: The feature is intended as a browser-based patient/pharmacist video consultation without requiring a direct mobile phone line.
Engineering benefit: The code provides camera-and-microphone video session setup; an external TURN relay and live remote-call validation remain pending.
Core capabilities
- Responsive customer storefront with a seeded synthetic medicine catalogue.
- Product search by brand, generic name, or therapeutic class.
- Category, over-the-counter (OTC), and prescription-only medicine (POM) filters.
- Branch selection for Airport Residential and Osu Oxford Street sample branches.
- Branch-specific sample stock visibility.
- Product details with strength or pack selection where available.
- Prescription submission flow with pharmacist review, approval, rejection, and revised-quotation paths.
- Customer order tracking and delivery or collection workflow fields.
- Pharmacist workspace for prescription and Tele-Pharmacist request handling.
- FEFO batch allocation using expiry dates, with stock receiving, quarantine, and inter-branch transfer workflows.
- Cashier point-of-sale workflow with cash tender/change calculation, shift records, and printable thermal receipts.
- Role-separated staff operations for pharmacist, cashier, inventory, fulfilment, and owner/admin roles.
- WebSocket signalling and real-time client update code in the server repository.
- Browser video consultation UI with local and remote video elements, camera/microphone controls, and a pharmacist request queue; camera and microphone are required.
- Synthetic pharmacist and patient profiles with emergency-care disclaimers.
Challenge, response, outcome
Customers need to inspect a product catalogue with branch context.
Response: The storefront provides catalogue search, product categories, OTC/POM filters, branch selection, and branch-specific sample stock.
Verified outcome: These controls and sample branch records are present in the demo code and interface; stock values are synthetic.
Prescription-only products need a pharmacist-controlled dispensing path.
Response: POM flags route submitted prescriptions through pharmacist review and approval/rejection workflows before dispensing.
Verified outcome: The repository contains the review and dispensing gate logic; it does not provide automated diagnosis or approval.
Batch expiry and branch stock movements need operational handling.
Response: The inventory model includes expiry batches, FEFO allocation, quarantine, stock movements, and inter-branch transfers.
Verified outcome: These workflows are implemented in source and seeded for demonstration; real stock systems are not connected.
A patient may request pharmacist guidance without travelling to a branch.
Response: The Tele-Pharmacist flow provides a request queue and browser WebRTC video setup with WebSocket signalling.
Verified outcome: Video is required in source; remote calls still need TURN configuration and live two-party testing.
A buyer may have different data-hosting and integration requirements.
Response: The demo uses its documented SQLite local-server configuration and includes a PostgreSQL schema option without selecting a buyer's managed provider.
Verified outcome: The database provider and production integration scope remain open for buyer discovery.
Security and reliability
- Source code uses server-side staff-session checks and role-restricted route middleware; this case study is not an independent security audit.
- The documented staff roles separate pharmacist, cashier, inventory, fulfilment, and owner/admin actions.
- The README documents branch isolation, session expiry, rate limiting, and audit logging for staff workflows.
- Prescription-only workflow requires pharmacist review; the demo does not use AI to diagnose, prescribe, or approve medicines.
- The repository documents formula-injection-safe CSV exports and audit records for operational actions.
- Seeded identities and operational records are synthetic demo data; no real patient dataset is claimed.
- Video consultation requires camera and microphone access; the interface includes an emergency-care disclaimer.
Performance and scalability
No load, latency, uptime, or scalability measurements are recorded, so no performance or production-capacity claims are made. The documented disk-backed SQLite setup is the local single-server demo model. The public Vercel demo's durable backend persistence has not been verified; final database, hosting, and scale design should follow the buyer's requirements.
User experience
The customer path places medicine search, branch selection, prescription submission, order tracking, and the video-consultation request near the storefront. Staff workflows are separated by role and accessed through a hidden keyboard-revealed gate with server-side authorization. GHS currency, Accra branches, and synthetic Ghana-localized demo records are represented. The interface identifies demo profiles and includes emergency notices.
Technology architecture
Stack
React 19 · TypeScript 7 · Vite 8 · Express 4 · SQLite via Node.js node:sqlite · Tailwind CSS 4 · Node.js · ws WebSocket server · WebRTC browser media · vite-plugin-pwa · Vercel-hosted demo · PostgreSQL/Supabase schema option, not connected · External TURN relay not configured
Approved project evidence

Screenshot synced from this project record.

Screenshot synced from this project record.

Screenshot synced from this project record.

Screenshot synced from this project record.

Screenshot synced from this project record.

Screenshot synced from this project record.
Current status
Development
Engineering insights
The codebase models a broad pharmacy workflow—from customer catalogue and prescription review through inventory and point of sale—while keeping the portfolio environment synthetic. The local SQLite runtime and included PostgreSQL schema are implementation options in the repository, not evidence of a buyer's production database connection. Tele-Pharmacist is a video workflow in the source, but external TURN setup and end-to-end remote call testing remain prerequisites before presenting it as a live service.
Acquire this application or request a similar build
This is a Frontier-owned product. You can open a commercial acquisition discussion for the existing application, or request a separate solution built around similar engineering capabilities.
