← all projects

Immigration CMS: case management for applications

React · .NET Core · C# · MS SQL

Context

A system to manage immigration work: applications, applicant records, required documents, and the progress of each case.

A case is a state machine with deadlines

Immigration cases are not simple transactions. A case can run for months and moves through fixed stages. Each stage needs certain documents, and there are dates that cannot be missed, like filing windows, expiry dates and response deadlines. If you miss one, you don't get an error message. You get a rejected application, and a real person is affected.

So each case stage is stored as a clear state, not just a status label. The documents needed for a stage are linked to that stage. This way, the record itself tells you what is still missing, and a caseworker does not have to read the whole history to find out.

Document handling

Immigration cases have a lot of documents, and many are originals like passports, certificates and official letters. Knowing which documents we have, which are missing, and which stage they belong to is the main part of the record. It is not a small attachment feature added on the side.

Stack

React.js · .NET Core APIs · C# · MS SQL Server