All projects
Web App

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 Numekara store page with mock-exam packs and PDF modules
Screenshot

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.

  1. 01

    The buyer browses the catalogue

    The store page lists mock-exam bundles and PDF modules with their current prices.

  2. 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.

  3. 03

    Buy and pay

    The buyer pays through Midtrans or by transfer. The price charged is locked when the order is created.

  4. 04

    Added to My Products

    Once paid, the mock exam or module unlocks on the buyer's own purchases page.

  5. 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.

  1. 1People

    • BuyerChooses a product, pays, and downloads from their own account.
  2. 2What they see

    • Store pageCatalogue, product details, and the promo price countdown.
    • My ProductsPurchased products with their download buttons.
  3. 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.
  4. 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