Web Applications / Project 06
Immigration Portal (Italy)
A bilingual workspace for immigration cases, clients and documents.

01 / Overview
Behind the interface.
A staff only case management portal for an immigration assistance office in Italy, built as a React 18 and TypeScript single page app on a Node, Express, Prisma and PostgreSQL API. It handles clients, immigration cases, documents, government services, calendar, tasks and analytics across fourteen screens, with an Italian and English language toggle.
02 / Implementation
What makes it work.
Case tracking as both a Kanban board and a data table, with client profiles, document vault and a government services catalogue.
Argon2id passwords, short lived access tokens paired with opaque refresh tokens, rotation with reuse detection that revokes the whole session family.
Role-based access with fine grained permissions resolved per request, plus account status gating and anti enumeration on login.
Document uploads to S3 with presigned URLs, PDF generation, transactional email, and a Swagger documented REST API.
shadcn style components on Radix primitives, TanStack Query for server state, light and dark themes, and a command palette.