Digital Product Store with Licensing
A store for mock-exam bundles and PDF modules; every PDF download is stamped with the buyer's name and email so copies can be traced.
- Status
- Live
- Layers
- BackendFrontendIntegration
- Used by
- Buyers of mock-exam bundles and PDF modules, and the owner who manages the catalogue and prices.

The problem
Paid PDFs are easy to pass around, and promo prices are often not switched back on time.
The solution
The catalogue and price schedule come from one config file, so prices change automatically on the set date. A purchase unlocks the product, and each PDF is stamped with the buyer's licence on download.
How it works
What happens, step by step, from the user's point of view.
- 01
The buyer browses the catalogue
The store page lists mock-exam bundles and PDF modules with their current prices.
- 02
Prices change on schedule
The price schedule is written once in a single config file. Promo prices switch over on their own on the set date.
- 03
Buy and pay
The buyer pays through Midtrans or by transfer. The price charged is locked when the order is created.
- 04
Added to My Products
Once paid, the mock exam or module unlocks on the buyer's own purchases page.
- 05
PDF stamped on download
Each PDF page gets a small footer stamp with the buyer's name, email, and download date. Rapid repeated downloads are paused for a while.
System design
Who uses it, what they see, what works behind the scenes, and where the data lives. Read it from left to right.
1People
- BuyerChooses a product, pays, and downloads from their own account.
2What they see
- Store pageCatalogue, product details, and the promo price countdown.
- My ProductsPurchased products with their download buttons.
3Behind the scenes
- Store serverReads the catalogue, creates orders, and unlocks access once paid.
- PDF stamperpypdf adds the buyer's licence stamp to every page footer.
4Data and outside services
- Catalogue fileOne JSON file holding the products and their price schedule.
- MidtransProcesses QRIS, GoPay, and virtual account payments.
- DatabaseStores orders and each buyer's access rights.
Key features
- Catalogue from one config file
- Scheduled price changes
- Licence stamp on every PDF
- My Products page
- Rate-limited downloads
Built with
- FastAPI
- PostgreSQL
- pypdf
- Next.js
- Midtrans
What the business gets
- Digital products sell without an admin sending files one by one.
- A leaked PDF copy can be traced back to its buyer.
- Promo prices end on time without anyone changing them by hand.
- Earlier orders keep the price paid, even after the catalogue price changes.
Terms on this page
- Cap lisensi (watermark)
- Small text on a document that marks who legitimately owns that copy.
- File konfigurasi (JSON)
- A text file of settings, here the product list and prices, read by both the website and the server.
- Rate limit
- A cap on how often an action can be repeated in a short time, to prevent abuse.
Can it work for your business?
For creators, publishers, or consultants selling e-books, templates, or modules: automated sales with basic protection against piracy.
Ask about this project