Back to Portfolio
EdTech / E-Commerce

JSN English
Learning Platform.

A secure educational platform combining digital discovery with physical fulfillment to eliminate content piracy.

Storage

AWS S3 (Samples Only)

Payments

NodeQR (Dynamic UPI)

Security Model

Offline Physical Delivery

1. The "Anti-Piracy" Architecture

A major challenge in EdTech is unauthorized sharing of high-value PDFs. Once a user buys a PDF, they can forward it to thousands of others, destroying the creator's revenue.

The Solution: I architected a "Hybrid" model.

  • Digital Discovery: Users can only view "Sample" pages (hosted on S3) to judge quality.
  • Physical Fulfillment: The full material is never digitized. It is sent via courier to the user's address, ensuring physical possession and preventing mass distribution.

Workflow Security

1
User views Sample (S3)
2
Scans Dynamic QR
3
Courier Dispatch (Offline)

Stops Digital Leaks

2. Admin & S3 Cloud Storage

The Admin Dashboard allows the content team to upload sample chapters. Using the aws-sdk, these files are uploaded to a public-read S3 Bucket.

Upload Logic

PUT /api/admin/upload

Admin selects a PDF → Server streams it to S3 → Returns a public URL to store in MongoDB.

User Access

GET /api/materials

Frontend fetches the S3 URL. Users can read the sample in-browser but cannot access full content.

Total Amount

499

upi://pay?pa=admin@okaxis&am=499...

3. Dynamic NodeQR Payments

To avoid high payment gateway fees (2-3%), we implemented a direct UPI flow using the node-qr library.

When a user clicks "Buy", the server generates a unique UPI string containing the Admin's VPA, the exact amount, and a unique Transaction Ref ID. This string is converted into a QR code on the fly.

The "Manual Approval" Trade-off

Since personal UPI does not provide webhooks, we built an Admin Verification Panel. The user enters their UTR number after payment. The Admin cross-checks it with their bank SMS and clicks "Approve" to trigger the courier dispatch.

4. Admin Workflow

Payment Approval

Admin views pending orders. They match the user's submitted UTR against bank records. One click updates the status to "Paid".

Logistics Management

Once approved, the order moves to "Ready for Dispatch". Admin enters the Courier Tracking Number, which is emailed to the student.