CodeFest 2026 · UI/UX Challenge

A student website that finally does the student's job.

A mobile-first redesign of acesknust.com. Ten pages rebuilt around four things students actually open the site to do — find course materials, buy from other students, catch an event, and know who to ask.

Pages redesigned
Screens built
Students served
Brand
Kept
{{ t }}
01 · Audit

What we found on the live site

Ten findings, each one traced to a real page and measured on the live site. Every fix later in this document points back to a numbered finding here.

{{ f.no }} {{ f.sev }} {{ f.page }}
{{ f.title }}
{{ f.problem }}
{{ f.fix }}
02 · Information architecture

Fourteen flat links became five tabs

The old footer navigation grouped pages by how the site was built (Explore / Marketplace / Resources), not by what a student wants. We regrouped around intent, and gave the two commercial journeys their own tabs because they carry the most steps.

Before · 14 links, 3 groups
{{ n }}
No search. Login, Register and Vendor Dashboard sat inside a footer column beside product browsing.
After · 5 tabs + sheet
{{ n.tab }} {{ n.holds }}
Search sits in the header on every screen. Overflow pages live in one bottom sheet reachable from Home.
03 · Live prototype

Try it — everything works

Not a mockup and not a separate demo — the phone below is running the shipped site itself. Scroll it, open the menu, filter the courses, tap an event. Whatever works here works at the live URL, because it is the same build.

Live build · scroll and tap inside
{{ j.no }} {{ j.name }}
{{ st }}
{{ j.why }}
04 · Design system

Tokens the web team can ship

The brand palette is the brief's, unchanged. We added the semantic and neutral steps the palette was missing, plus one dark surface ramp — nothing here needs a designer to interpret it.

{{ c.name }}
{{ c.hex }}
{{ c.token }}
Type scale
Space Grotesk 700
Display · 31/25/22/19/15 · tracking −3%
Public Sans 400 — body copy set at 14–15px on mobile with 1.6 line height, never below 12.5px for metadata.
Body · 15/14/13.5/12.5
IBM PLEX MONO · CE 353 · GH₵ 120 · AUG 14
Labels, course codes, prices, dates, IDs
Accessibility floor
{{ a.v }} {{ a.t }}
Components & the states each one ships with
{{ c.name }}
{{ s }}
05 · Responsive scaling

How the mobile system grows to desktop

Optional per the brief, included to prove the tokens hold. The bottom tab bar becomes a horizontal nav, cards keep their radius and spacing, and the grid goes from 2 to 4 columns.

acesknust.com
06 · Coverage

All ten pages, and what each one now does

{{ p.no }} {{ p.name }} {{ p.what }} {{ p.state }}
07 · Motion

Motion that does a job

Every animation here is CSS-only — scroll-driven timelines (animation-timeline: view()) rather than scroll listeners, so nothing costs a frame on a mid-range Android. All of it collapses under prefers-reduced-motion.

{{ m.dur }}
{{ m.name }}
{{ m.what }}
Against the rubric

Where to find each scored item

{{ r.pts }} {{ r.item }} {{ r.where }}
Brand guardrails honoured: the ACES name and crest are untouched, the palette stays blue-and-white with the brief's exact hex values as its base, and every screen is built from plain HTML and CSS the ACES web team can ship on their existing Next.js stack.