A modern, full-stack pharmacy management and e-commerce platform built with Ruby on Rails (API) and React. Designed for scalability, real-time interaction, and production-grade reliability.
⚠️ Status: In Progress — Actively developing. Open to collaboration and feedback.
- 🛍️ Medication Catalog with image uploads, categories, prices, and pharmacy ownership
- 🧾 Cart System with dynamic updates, item quantities, and cart-item grouping by pharmacy
- 💳 Stripe Integration for secure, real-time payments
- 📄 Prescription Upload required for controlled medications
- 🧑⚕️ Role-Based Access Control
Customer: Search and purchase medicationsPharmacy Agent: Manage medicationsDelivery Agent: View and fulfill assigned deliveriesAdmin: Invite and manage agents, assign deliveries
- ✉️ Invitation System using
Action Mailerwith tokenized email links - 📡 Real-Time Notifications via Action Cable (WebSockets)
- 🧾 PDF Order Summaries downloadable post-payment
- 🗂️ Paginated Listings using Pagy
- 🔒 JWT Authentication
| Layer | Technology |
|---|---|
| Frontend | React + TypeScript + React Query + Bootstrap |
| Backend | Ruby on Rails (API-only) |
| Realtime | Action Cable |
| Auth | Devise, Devise-JWT |
| Payments | Stripe Checkout & Webhooks |
| File Uploads | ActiveStorage (with FormData support in React) |
| Database | PostgreSQL |
| Background Jobs | Sidekiq |
| Pagination | Pagy |
- Admin Dashboard

- Pharmacy Agent Dashboard

- Delivery Agent Dashboard

- Customer Medication Search & Cart

- Admin Invite Panel

- Email invitation link

- Pharmacy Agent Upload Medication

- Order Detail with Prescription Upload

- Order detail without prescription

- Stripe Checkout

- User Authentication
- Role Management (Admin, Customer, PharmacyAgent, DeliveryAgent)
- Cart & Checkout Flow
- Stripe Webhook Integration
- File Uploads (ID card, Logo, Prescription)
- ActionCable Admin Notifications
- Admin Dashboard (in progress (80%))
- Pharmacy Agent Dashboard (in progress (80%))
- Delivery Agent Dashboard (in progress (80%))
- Order Assignment Workflow
- Mobile Responsiveness & UI Polishing
- Production Deployment Setup (Fly + fly volumes for images)
- Continous Integration and Development (CI/CD)
git clone https://github.com/addod19/halopharma.git
cd halopharma
cd backend
bundle install
rails db:create db:migrate
rails sbundle exec sidekiqstripe listen --forward-to localhost:3000/api/v1/stripe_webhookgit clone https://github.com/addod19/halopharma.git
cd halopharma
cd frontend
npm install
npm start- Real-world complexity: Role-specific registration flows, prescription validation, multi-model associations, and Stripe integration mirror production-grade app logic.
- Security-first: Uses JWT with role scoping, invitation token expiration, and secure uploads.
- Scalable: Jobs offloaded with Sidekiq, image attachments handled via ActiveStorage, real-time features powered by WebSockets.
- Recruiter-Ready: This project is in active development with clean code, clear structure, and professional architecture.
HaloPharma is a portfolio project to demonstrate my full-stack engineering skills and ability to build secure, scalable, and production-ready apps. It's designed to showcase:
- End-to-end system design
- Real-time interaction using ActionCable
- Stripe integration with proper webhook handling
- React and Rails API communication via token-auth
If you’re hiring or interested in my work:
Daniel Addo Larbi
📧 addodaniellarbi@gmail.com
🌐 LinkedIn
📁 Résumé available on request
This project is for production purposes, and once completed, it will be available for commercial use.