Full-stack case study · Since October 2025
Zupit Forms
An internal platform that turns Google Forms into assignable, trackable workflows with automated reminders.
How it works
Angular + Nx · .NET Core · PostgreSQL · Keycloak · Docker
The product
From a form link to a managed workflow
I have been developing Zupit Forms since October 2025 as a full-stack application for managing recurring internal forms. Administrators can configure a Google Form, assign it to selected people, set a deadline, and define reminders from one place.
The platform synchronizes submissions and turns them into a clear view of what is pending, completed, or expired. Employees get a focused list of their forms, while administrators can follow completion progress, inspect outstanding assignments, and send targeted reminders.
Product views
Inside the product
The workflow stays clear from both sides: employees see what needs their attention, while administrators configure forms, recipients, deadlines, and reminders from a single workspace.

End-to-end ownership
Full-stack engineering across the system
Product frontend
I built the Angular experience in an Nx workspace, including admin dashboards, data grids, configuration forms, user views, filters, and reusable UI libraries. A generated OpenAPI client keeps the frontend contract aligned with the backend.
- Angular
- Nx
- OpenAPI
- Internationalization
Application backend
I designed feature-oriented .NET Core services and Minimal API endpoints for forms, assignments, users, dashboards, and reminders. Entity Framework Core handles the PostgreSQL model and migrations, with validation and permission checks at the API boundary.
- .NET Core
- Minimal APIs
- EF Core
- PostgreSQL
Integrations & automation
The system connects Google Forms and Sheets data with company users, secures role-based access through Keycloak, schedules synchronization and reminder jobs with Hangfire, and delivers contextual notifications through Slack.
- Google APIs
- Keycloak
- Hangfire
- Slack
Delivery & reliability
I worked across local and hosted environments with Docker Compose, automated build and release workflows, structured logging, and a test suite covering core services and complete API flows with isolated test dependencies.
- Docker
- CI/CD
- Integration tests
- Observability
What this project represents
A product shaped across every layer
Zupit Forms reflects the way I like to work as a full-stack developer: starting from a real operational problem, designing a coherent user flow, and carrying it through APIs, data modeling, third-party integrations, background processing, testing, and delivery.



