Work · Hyundai
Hyundai Painting Competition
Public site and judging back office for a children's painting competition
My role
Full-Stack Developer
Status
Live
Live site Client project — source code and internal details are not public.
Overview
Parents submit their children's artwork on a bilingual public site; administrators, pre-evaluators and the jury then check eligibility and score each painting in a Razor Pages back office. The site also publishes awards, the jury, previous winners and yearly exhibitions.
The problem
Collecting many submissions with consent forms and running a two-stage evaluation every year by hand is slow and error-prone.
Key features
- Bilingual (TR/EN) public site: awards, jury, FAQ, video, exhibitions and previous winners
- Application form with artwork upload, file-size and type limits, consent and age categories
- Pre-check stage with an eligibility checklist
- Jury scoring against configurable criteria
- Content management for awards, winners, jury, exhibitions, FAQ and translations
- Statistics dashboard with filters and Excel export
Architecture
- .NET 9 Web API with a Razor Pages admin area and EF Core on SQL Server
- React (Vite) public site
- JWT for the API, cookie authentication for the admin area and role-based access for admins, pre-evaluators and jury
- Rate limiting and security headers on public endpoints
- Azure DevOps pipelines that build on Linux and deploy to IIS
Technical challenges
- Two-stage judging with criteria that change from year to year
- Translations that default to the frontend's files but can be overridden from the admin panel
Tech stack
.NET 9ASP.NET CoreRazor PagesEntity Framework CoreSQL ServerJWTReactViteTailwind CSSAzure DevOpsIIS