UX / UI Case Study

UPLATFORM

A real-time IoT platform for education and research. Designed for labs, student projects, and smart-campus applications.

Role
Freelance UI Designer
Client
TRINERGY COMM-THA
Timeline
Jun – Aug 2025
Tools
Figma
Scope
UI system, components, prototypes, dev handoff
01

Objective

01

Designed the entire UI for UPlatform's new system.

02

Developed a comprehensive design system and reusable design components.

03

Prepared and delivered design files for seamless handoff to developers.

02

Problem & goals

UPlatform needed a clearer and more consistent digital experience for users entering and navigating the platform. The project focused on improving the interface structure and establishing a scalable UI system for future development.

The product spans two very different jobs: a public-facing site that explains what the platform does, and an authenticated workspace where users manage projects, devices, dashboards and rule chains. Both lived in the same shell, so the shell had to carry marketing pages and dense data tools without changing character.

Design goals
  1. Make the entry path, login, register, first screen, legible and quick.
  2. Give navigation one predictable structure that scales as modules are added.
  3. Keep data-heavy tools readable at high density.
  4. Define tokens and components developers can build against directly.
03

Users & needs

Three roles are visible throughout the product, and each one meets the interface at a different depth. I designed the navigation and permissions structure around them.

Students

Enter through a purchased project, follow the user guide, and want a dashboard running without touching configuration they don't understand.

Faculty & lab staff

Set up course projects, register devices, and build the dashboards students use. They live in tables, forms and the widget picker.

System admins

Own users, faculties, rule chains and the content of the public site. They need every settings surface to behave identically.

Design process
Moodboard
Tone, colour, references
Wireframes
Structure in greyscale
Design system
Tokens and components
UI concept
Screens, light and dark
Responsive
Collapse and reflow
04

Moodboard & direction

The direction came out of the client's identity: a single institutional green, a near-black, and a lot of quiet space. I kept the palette to four values so density could be handled with tone rather than colour.

  • Soft mint as the page surface, not white, it makes green UI feel intentional.
  • Deep green reserved for action and state.
  • Concentric signal arcs as the recurring brand motif on entry screens.
#EEFAF3 #AADEC1 #3D8951 #0F0F0F
05

Information architecture

One sidebar carries everything. Public pages sit at the top, role-gated management sits below a divider, and the two management groups are the only places that expand, so the tree never gets deeper than two levels.

Level 1, Open to all
Project
User Guide
Contact
FAQ
Use Cases
Level 2, Project management
Project Settings
Create Dashboard
Device Profiles
Manage Device
Rule Engine
Level 2, User management
User Group Settings
User Settings
Admin, Site content
Website Settings
FAQ Settings
User Guide Settings
Faculty Settings
Every settings surface uses the same table, add-modal and confirm pattern, so learning one teaches all four.
06

Wireframes

I settled hierarchy in greyscale first: where the shell ends and content begins, how the profile menu behaves, and how much of the home page is content versus imagery.

Greyscale wireframes for login, register, home, project, contact and FAQ
Login, register, home, my projects, contact and FAQ, structure only.
07

Design system

Four colours, one typeface, and a named scale for every text role in the product. Public Sans handles Thai and Latin copy side by side, which the FAQ and user guide both required.

Palette
#EEFAF3
Surface
#AADEC1
Shell / motif
#3D8951
Action
#0F0F0F
Text / dark UI
Buttons
Button library: default, disabled and size variants
Type scale
Typography specification: title, body, description, button and placeholder scales
08

Component library

Each component was drawn in every state it ships in, signed out, signed in, expanded, collapsed, disabled, so developers never had to guess an interaction.

Top bar, session states
Logged out, primary login, avatar only, named, and open profile menu.
Top bar states
Inputs & search
Filled, outlined and underlined variants with label and placeholder.
Input and search field variants
Appearance switch
Auto, day and night, auto follows the device, which matters in labs that run long shifts.
Auto, day and night mode states
Sidebar
Expanded, icon-only, and expanded-over-content on narrow viewports.
Sidebar expanded, collapsed and overlay states
09

Entry screens

Login and register are the first thing every role sees, so they carry the brand alone: an oversized wordmark, the signal arcs, and one panel holding the form. Register asks for title, name and identification number up front, because accounts are tied to institutional records.

Login screen, light mode
Login, the wordmark runs off the left edge; the form panel is flush right and full height.
Login screen, night mode
Same layout in night mode, the arcs recede, the wordmark carries the green.
Register screen, light mode
Register, a centred card over the wordmark, with the 8-character rule stated before the field is touched.
Register screen, night mode
Title, name and surname share one row so the form stays four fields tall.
10

Home & public pages

The landing view pairs a short value statement with photography of the platform in real use, and a down-arrow marker sets the expectation that About Us continues below rather than living in a separate menu. Every public page then reuses one frame: centred title, one-line subhead, and a two-column body where the left side is content and the right side is reference material.

Home page in light mode with the profile menu open
Home, signed in as admin, the profile menu opens over content rather than pushing it.
Home page in night mode with the full sidebar expanded
Night mode with both management groups expanded, the longest state the sidebar has to hold.
User guide page
User guide, accordion left, technology cards right.
FAQ page
FAQ, first item open by default, Thai and English stacked.
Contact page
Contact, each channel is its own card with one action.
11

The workspace

Behind the login, the product is mostly lists. Every management surface, projects, dashboards, device profiles, rule chains, user groups, is the same object: title, Add button, search, sortable table, pagination. Card grids are reserved for things with an image or a live state.

My Project card grid
My Project, hover reveals the description and both actions; the resting card shows only its name.
Project Settings table
Project Settings, 14 rows per page, edit and delete only.
Device Profiles table
Device Profiles, identical frame, different columns.
Manage Device card grid
Manage Device, cards, because live status is the point. Active reads green, inactive red.
User Group Settings table
User Group Settings, roles and headcount, permissions live in the modal.
Rule chain board
Rule chain board, a searchable node palette in a fixed panel, a gridded canvas to the right. The one surface where the interaction model, not the styling, decides whether faculty can use it.
12

Dashboard builder

The flow that mattered most: pick a template, view it, switch to edit mode, add widgets, save. View and edit are the same layout, only the header changes, so nothing moves under the user when they cross into editing.

Dashboard template gallery
1, Templates, with Custom Dashboard as the escape hatch.
Template dashboard, view mode
2, View mode: Back, title, Edit Mode.
Select widget modal
3, Widgets are chosen as live previews at real size, not from a list of names.
Editing template with two widgets placed
4, Editing: Add Widget and Save replace Edit Mode; each widget carries its own size control.
Smart Farm use-case dashboard
The finished article, a Smart Farm dashboard built from the same widget set, charted entirely in tints of the one green.
13

Modals & forms

Creating anything happens in a modal over a blurred page, never on a separate route, the list you came from stays visible behind, so cancelling costs nothing. All of them share one skeleton: title, fields, character limit, then Submit and Cancel at equal weight.

Add project modal, empty
Add Project, empty, placeholders state format, helper text states the file rules.
Add project modal, filled
Filled, the attachment becomes a removable chip and Submit becomes Save.
Add device profile modal
Add Device Profile, tabbed when a form has two unrelated halves.
Add new role modal with permissions
Add New Role, permissions are full-width rows with the module icon, so a granted row reads as a filled bar.
14

Night mode

Night mode is not an inverted copy. The mint surface drops to near-black, the sidebar keeps its green identity at lower luminance, and the green fills that carry data in daylight become translucent panels so charts stay readable.

The appearance switch offers three positions rather than two, auto is the default, so a device already set to dark never flashes a white login screen. Every screen in this case study was drawn in both modes.

My Project in night mode
Project cards hold their green fill against near-black.
User guide in night mode
Reference cards keep their source colour, the one place foreign brand colour is allowed.
Device profiles table in night mode
Tables lose their fill and rely on row rules alone.
Template dashboard in night mode
Chart tints shift up the scale to hold contrast on the darker panel.
15

Responsive behaviour

The shell absorbs width changes before the content does. Below the desktop breakpoint the sidebar collapses to icons; below tablet it becomes an overlay, and content keeps its full measure instead of reflowing to two narrow columns.

Desktop
Sidebar expanded with labels and group headers. Tables show all seven columns.
Laptop
Sidebar collapses to a 64px icon rail. Dashboard widgets drop from four to two per row.
Tablet
Sidebar opens over content on demand. Forms go single column; modals go full width.
Login at a reduced viewport
At a narrower viewport the wordmark crops rather than shrinks, so the form panel keeps its target size.
16

Handoff to developers

Named tokens
Colour and type styles named by role, Title/ExLg, Body/Md, Button/Sm, not by value.
Component variants
Every state built as a Figma variant, so a developer reads the property panel instead of measuring.
Prototypes
Clickable flows for login, register, add project, add device and dashboard editing.
Delivered files
Light and dark screens, the component library, and exported assets prepared for build.
17

Reflection

What worked

Constraining the palette to four values early made the dense screens, tables, rule chains, widget grids, far easier to keep legible. Building the shell as one component with explicit states meant the twelve product screens were mostly composition, not new design.

What I would do differently

I would define the data-table and empty-state patterns before designing individual settings pages, rather than extracting them afterwards. I would also test the rule-engine board with faculty earlier, it is the one surface where the interface model, not the visual design, decides whether people can use it.

← All projects