OstimGPT
A locally hosted Retrieval-Augmented Generation chatbot answering questions from university sources.
SAMS is a digital student application platform supporting applicant profiles, internal review processes, application status management, reporting and locally hosted AI-backed language configuration. Within the development team I built profile interfaces, an internal notes panel for reviewers, form-to-submission synchronisation, an application status API endpoint and a configurable reporting dashboard.
The Student Application Management System is a digital platform for handling student applications end to end: applicants build a profile and submit an application, and staff review those applications, record internal notes, move them through status changes and report on the result.
I contributed to this platform as a member of the university’s development team. My work concentrated on the interfaces applicants and reviewers actually use, on keeping submitted data consistent with the forms that produced it, and on the reporting and status surfaces built on top.
Student applications are a recurring, high-volume administrative process with two distinct audiences: applicants, who use the system once or twice and need it to be self-explanatory, and internal reviewers, who use it constantly and need it to be efficient.
A platform serving both audiences has to be designed for both. Much of my work sat on the reviewer side, where small friction is repeated hundreds of times.
An application process handled across disconnected forms, spreadsheets and email loses context. Reviewers cannot see why a decision was made, applicants cannot see where their application stands, and reporting means reconstructing the picture by hand.
My Role
I developed the Profile Page user interface and the Applicant Profile Page, and built an Internal Notes Panel for reviewers. I implemented automatic synchronisation between form fields and submissions, and extended the submission models with review-related fields. I developed an application status API endpoint and created a configurable reporting dashboard. I also helped migrate the platform’s language configuration to a separate service backed by locally hosted models.
Team Context
This is a university platform built and maintained by the software development team in the Digital Transformation Coordination Office. I was a contributor on that team, not the owner of the platform. The features described here are the ones I personally developed; the platform as a whole — its architecture, its other modules and its operation — is the team’s shared work, developed in sprints with collaborative code review.
The work followed the application’s own lifecycle: give the applicant a coherent profile, give the reviewer the context needed to decide, keep the underlying data consistent as both sides change it, then expose status and reporting on top of that foundation.
An applicant creates a profile and submits an application. The submission is stored against models that carry both application data and review-related fields, kept in step with the form definition by automatic synchronisation. Reviewers work through the applicant profile page and an internal notes panel. Application status is exposed through an API endpoint, and a configurable reporting dashboard reads across submissions. Language configuration is handled by a separate service backed by locally hosted models.
An application viewed as a single coherent record rather than a set of form answers.
Reviewer reasoning captured against the application itself, where the next reviewer will find it.
Form fields and submitted data stay aligned automatically as forms change.
Submission models extended with review-related fields, giving review state a real home.
A dedicated endpoint so other parts of the system can read status directly.
Staff shape the report they need instead of requesting a new fixed view.
Forms change over time, and submitted data captured under an older form definition drifts out of step with the current one.
I implemented automatic synchronisation between form fields and submissions so the relationship is maintained by the system rather than by whoever remembers to update it.
Review state — notes, decisions, context — had nowhere structured to live, which pushes it into email and side channels where it stops being part of the record.
I extended the submission models with review-related fields and built the Internal Notes Panel on top, so reviewer context is stored with the application it belongs to.
Fixed reports create a queue: every new question becomes a development request.
I built the reporting dashboard to be configurable, so staff can answer new questions without waiting for a code change.
| Decision | Alternative considered | Why |
|---|---|---|
| Extend the existing submission models with review-related fields. | Keep review state in a separate store alongside submissions. | Keeping review state with the submission means a single record tells the whole story and cannot fall out of sync. It does make the submission model larger, which is the accepted cost. |
| Make reporting configurable rather than shipping fixed reports. | A set of predefined report views. | Configurable reporting is more work upfront but removes a recurring dependency on developers for every new question. Fixed reports are faster to build and slower to live with. |
| Move language configuration into a separate service backed by locally hosted models. | Keep language configuration inside the main application. | Separating it keeps model-backed behaviour out of the application’s core and lets it be changed independently. It adds a service boundary to operate, which was the trade accepted. |
Applicants have a profile-based view of their application, and reviewers have an applicant profile page with an internal notes panel that keeps their reasoning attached to the application record.
Submitted data stays aligned with the forms that produced it through automatic synchronisation, and review state has a defined place in the submission model.
Application status is available through a dedicated API endpoint, and staff can shape reports themselves through the configurable reporting dashboard.
Screenshots to be added
Have a software, AI, RAG, or web application project in mind? Let’s discuss what you need and determine the right technical approach.