Top Papier
Instant print quotes from the files you upload
- Next.js
- NestJS
- Prisma
- PostgreSQL
- BullMQ
- Ghostscript
- PDFium
- Docker
- Playwright

A quote and ordering site for Top Papier, a print shop in Tizi-Ouzou. Clients upload their files, books first, and get a price straight away: a worker reads every page and measures its size and ink coverage, then the pricing engine applies the shop's cost tables and options. The shop manages its catalog, prices, pages and orders from an admin area. The site is in French, Arabic (right-to-left) and English.
Features
- Upload PDF, Word or image files and get a quote in seconds
- Every page measured: size, bleed, ink coverage, colour or black and white, image resolution, with warnings for the client
- Price lists with versions (draft, then publish) and a simulator for the shop
- Orders with status history, a client area, emails, and quote and invoice PDFs
- Delivery to all 69 wilayas and 1,541 communes; payment at the shop, on delivery or by bank or CCP transfer
- Admin area for the catalog, pages and settings, with drag to reorder
- French, Arabic and English, with a right-to-left layout in Arabic
How it's built
- Next.js front end and a NestJS API in strict TypeScript, with Prisma and PostgreSQL
- A BullMQ worker checks each upload by its content, converts Word files with Gotenberg and analyses pages with PDFium
- Ink coverage measured by Ghostscript in its own small service
- Files stored in SeaweedFS, an S3-compatible store hosted with the app
- Runs in Docker behind Caddy, with tested backups and restore, monitoring, and release and rollback scripts
- 118 unit and 96 end-to-end backend tests, plus Playwright journeys in the browser