A secure, full-stack platform for digital prescription exchange between doctors and patients.
Say goodbye to lost paper prescriptions β doctors upload, patients retrieve, OTP verifies. Simple, secure, always accessible.
- Overview
- Tech Stack
- System Architecture
- User Roles
- Features
- Prescription Retrieval Flow
- Getting Started
- Environment Variables
- Security Considerations
- Roadmap
- Contributing
- Contact
- License
The Medical Prescription Portal digitizes and simplifies the prescription-sharing workflow between healthcare providers and patients.
Patients frequently lose or misplace physical prescriptions, creating friction when refilling medication or consulting another provider. This platform solves that problem by letting doctors upload prescriptions digitally and giving patients secure, login-free access to retrieve them on demand β authenticated via email-based OTP verification.
| Highlight | Description |
|---|---|
| π©Ί Doctor Dashboard | Fast, structured prescription uploads linked to patient records |
| π OTP Authentication | Passwordless, time-bound identity verification for patients |
| π₯ Patient Portal | Simple, login-free gateway to retrieve prescriptions anytime |
| ποΈ Secure Storage | Reliable, access-controlled storage of prescription files |
| Layer | Technology |
|---|---|
| Frontend | React, Tailwind CSS |
| Backend | Spring Boot (Java) |
| Database | MySQL |
| Auth | Email-based OTP |
| File Storage | Local / cloud object storage (configurable) |
βββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββ
β Doctor UI βββββββββΆβ Spring Boot API βββββββββΆβ MySQL DB β
β (React/Tailwind)β β (REST Services) β β (Patients, β
βββββββββββββββββ β β β Prescriptions)β
β β βββββββββββββββββ
βββββββββββββββββ β β βββββββββββββββββ
β Patient UI βββββββββΆβ OTP Service ββββββββββββββΆβ Email Providerβ
β (React/Tailwind)β β (Generate/Verify)β β (SMTP) β
βββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββ
β
βΌ
ββββββββββββββββββββ
β File Storage β
β (Prescriptions) β
ββββββββββββββββββββ
Doctors use the platform to:
- Upload prescription files (PDF/Image) for a patient.
- Associate uploads with the patient's registered email address.
- Maintain a history of issued prescriptions per patient.
- Ensure patients retain long-term access without needing physical copies.
Patients can:
- Enter their registered email address to initiate a request.
- Receive a secure, time-limited One-Time Password (OTP) via email.
- Verify their identity by submitting the correct OTP.
- Instantly download their prescription upon successful verification.
| Component | Feature | Description |
|---|---|---|
| Doctor Features | Upload Prescription | Upload PDF/Image prescription files |
| Patient Records | Manage and associate patient records | |
| Secure Storage | Encrypted / access-controlled file repository | |
| Patient Features | Request OTP | Request a temporary token via email |
| Verify OTP | Authenticate the token securely | |
| Download Prescription | Retrieve and download the file instantly |
- Patient enters their registered email on the portal.
- System generates a time-bound OTP and sends it to the email.
- Patient submits the OTP for verification.
- On success, the system authorizes a one-time secure download link.
- Patient downloads the prescription instantly.
- Java 17+
- Node.js 18+
- MySQL 8+
- Maven
cd backend
mvn clean install
mvn spring-boot:runcd frontend
npm install
npm run devCREATE DATABASE prescription_portal;Update your database credentials in application.properties before starting the backend.
| Variable | Description |
|---|---|
DB_URL |
MySQL connection string |
DB_USERNAME |
Database username |
DB_PASSWORD |
Database password |
MAIL_HOST |
SMTP host for sending OTP emails |
MAIL_USERNAME |
SMTP account username |
MAIL_PASSWORD |
SMTP account password |
OTP_EXPIRY_MINUTES |
OTP validity duration |
- OTPs are time-bound and single-use to prevent replay attacks.
- Prescription files are stored in an access-controlled repository, never publicly indexed.
- Email is used as the sole identifier to minimize the attack surface β no passwords are stored for patients.
- All sensitive endpoints should be served over HTTPS in production.
- Two-factor authentication for doctors
- Patient prescription history dashboard
- Mobile-responsive UI enhancements
- Audit logs for prescription access
- Multi-language support
Contributions are welcome! To contribute:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/your-feature). - Commit your changes (
git commit -m "Add your feature"). - Push to the branch (
git push origin feature/your-feature). - Open a Pull Request.
Feel free to reach out for inquiries, feedback, or collaboration:
- Email: debapriyo00@gmail.com
- GitHub: @debapriyo007
This project is licensed under the MIT License.
Built with the goal of making prescription management simple, secure, and always accessible.