All work
Case study · Freelance

Primary School parent app

2026 · iOS & Android

A parent app for a private primary school. Fees, attendance, weekly reports, chat with teachers and school events sit in one place, and parents with more than one child can switch between them from every screen.

25+screens
270variables in 4 collections
6 × 11colour ramps
162button variants
Welcome screen: Your school, in one place
01Welcome
Home: attendance, outstanding fees and items needing attention
02Home
Notifications grouped by Today and Yesterday
03Notifications
Fees: this month's breakdown and earlier cycles
04Fees
Checkout: pay by card or bank transfer
05Checkout
Absence notices: upcoming notices with their status
06Absence notices
Add absence reason: calendar with a bottom sheet asking why the child was away
07Add absence reason
Chat with the class teacher, with a shared PDF
08Chat
Weekly reports from the teacher
09Reports
More menu: profile, meal plan, meetings, events and documents
10More
Profile and settings with linked children
11Profile and settings

Scroll sideways for more screens. Names are fictional sample data.

One app, several children

A child switcher sits at the top of each screen, and totals such as fees say clearly when they cover all children.

What needs attention first

Home leads with attendance and money, then a short list of things to act on: an absence, a new report, a meeting.

A system before screens

Every screen is built from shared components, variables and auto layout, so new screens stay consistent as the app grows.

Design system

Colour, straight from my variables

Hover or tap a swatch to see its variable

Six ramps, 11 steps each, from 50 to 950.

Button propertyOptions
Variant6, including primary, secondary and danger
Statedefault · hover · disabled
Iconnone · left · right
Sizesm · md · lg
LabelText property
6 × 3 × 3 × 3 = 162 variants from one component.
Figma variables panel with Brand, Design Tokens, Alias and Typography collections, and the primary, gray and red colour ramps
Inside the file: 4 collections, 270 variables.
Button component set with 162 variants and its properties
The button component set.
Input field component properties on the Care details form
Input field properties: type, state, icon, label, helper text, mandatory.
Events screen in Figma showing auto layout and surface and hairline tokens
Auto layout all the way down, with semantic surface and hairline tokens.