Backend API that aggregates and exposes structured data about medications from the Czech State Institute for Drug Control (SÚKL) open datasets.
This project transforms raw CSV datasets into a modern, queryable REST API.
- Node.js (v22 LTS)
- TypeScript
- Express
- Prisma ORM (v7)
- PostgreSQL (Supabase)
sukl-api/ ├─ src/ │ ├─ db/ │ ├─ services/ │ ├─ controllers/ │ ├─ routes/ │ ├─ app.ts │ └─ server.ts ├─ prisma/ │ ├─ schema.prisma │ └─ migrations/ ├─ prisma.config.ts ├─ package.json ├─ tsconfig.json └─ .env
npm install
Create .env:
DATABASE_URL="postgresql://USER:PASSWORD@HOST:5432/postgres?sslmode=require" DIRECT_URL="postgresql://USER:PASSWORD@HOST:5432/postgres?sslmode=require" PORT=3000
npx prisma migrate dev --name init
npx prisma generate
npm run dev
GET /
GET /medications
Query:
- name
- atc
- page
- limit
Client → Express → Controller → Service → Prisma → PostgreSQL
- /medications/:suklCode
- ETL for CSV datasets
- Swagger docs
- Caching
MIT