Overview
UniMatch was born from a real problem — the DGES admission scoring system is opaque and confusing for most students. I built a tool that takes your grades, applies the official formula, and shows you exactly where you stand. It's now live at unimatch.pt and used by real students.
Stack
Preview
Add screenshot 1
Drop an image here
Add screenshot 2
Drop an image here
What I learned
- Built and deployed a full production-grade Next.js app end-to-end
- Implemented complex grade calculation logic matching official Portuguese DGES formulas exactly
- Designed a responsive, accessible UI tested with real users
- Learned about SEO, Core Web Vitals, and performance optimisation for real traffic
- Handled user feedback loops and iterated on UX based on actual usage
Build log
Struggles, findings, decisions, breakthroughs — the honest story.
The DGES formula is a nightmare
The official formula for calculating university admission scores has edge cases nobody documents clearly. I spent days cross-referencing PDFs from the ministry of education to get it right.
Next.js over plain React
Chose Next.js for SEO — students searching 'como calcular nota de candidatura' needed to find this. Server-side rendering made all the difference for discoverability.
First real user session
Watching the first external user navigate the app without me explaining anything was the moment I knew the UX was working. That dopamine hit is unreal.
Mobile accounts for 70%+ of traffic
After deploying I checked analytics and nearly all users were on mobile. Completely reshaped my layout priorities — mobile-first stopped being a suggestion.
Data freshness
Course cutoff scores change every year. Had to design a system that makes it easy to update the data without touching the calculation logic.