Datark
Open-access platform for heritage sciences.
- Next.js
- NestJS
- PostgreSQL
- TypeScript
- Stripe
- Copyleaks
Context
Open-access platform for heritage sciences (archaeology, history, conservation): PDF publication submission, search through the PACTOLS thesaurus, co-author collaboration and subscriptions.
What I built
Full rewrite of a platform already in production with 1,500 accounts created: moving from Angular, Express and MongoDB to Next.js, NestJS and PostgreSQL, with a progressive data migration.
Technical points
- Progressive data migration from MongoDB to PostgreSQL, with no downtime for the platform in production.
- Plagiarism detection through the Copyleaks API: PDF submission, asynchronous results received over a webhook with a verified HMAC-SHA256 signature, a state machine exposed to the front end, and administrator notification for manual review. Integrated in sandbox mode.
- Graceful degradation of the third-party service: with no API key the scan is marked as skipped, on a network error it is marked as failed, and the publication upload succeeds in both cases.
- Search indexed on the PACTOLS thesaurus, and co-author management on every submission.
Architecture
- client
- api
- db
- external
- Next.js
- NestJS
- PostgreSQL
- Stripe
- Copyleaks
- Next.jsNestJS· REST
- NestJSPostgreSQL· SQL
- NestJSStripe· subscriptions
- NestJSCopyleaks· signed webhook
