User Dashboard
Everything the manager needs when completing their own training.
- Take assigned training
- Continue courses
- Track personal progress
- Access certificates
- Complete forms
Design Engineering Case Study / 01
Design Engineering / Full-Stack Product
Designing and engineering an online training platform from the ground up.
I independently designed and developed Yoda Safety Services' production training platform, translating business requirements into the product structure, interface systems and full-stack functionality used by individual learners, companies and administrators.
Individual User Dashboard
Production Interface
Courses
Live training catalogueUser Contexts
Individual · Company · AdminProduction Platform
Checkout · Forms · CertificatesProduct Architecture
Designing the system
The challenge wasn't simply deciding which pages to build. It was deciding which information, actions and permissions belonged to each user context.
Starting from functional requirements, I identified the different ways people would interact with the platform and structured the application around those responsibilities, while leaving room for new functionality to be introduced over time.
Context Separation
A company manager is also a learner. Instead of combining personal training and company administration into one interface, I kept those experiences intentionally distinct while making both available through the same account.
A clear boundary reduces the chance of users confusing personal training actions with decisions that affect an entire company.
Everything the manager needs when completing their own training.
A separate workspace for decisions and actions that affect the organization.
Designing for Change
Core Training
Training, certificates, company management and distinct dashboards established the initial product structure.
Expanded Workflows
Digital forms were introduced later, requiring new user, company and administrative workflows across the existing platform.
New Access Models
Subcontractor access builds on the same architecture with a deliberately limited context for external users who only need selected company resources.
Responsive Behaviour
Designing for smaller screens
The desktop dashboard is designed to expose breadth. Mobile needed to prioritize speed, clarity and the next useful action.
Rather than forcing the desktop layout into a narrow viewport, I created a dedicated mobile composition using the same underlying product data while changing how that information is grouped and surfaced.
Broader context

Focused actions

Summary
Desktop summary items include counts, labels and direct links. Mobile condenses the same information into compact metrics so the learner can understand their current training status immediately.
Priority
High-priority actions remain prominent on mobile, but move from a horizontal card grid into a vertical list that is easier to scan and scroll with limited screen width.
Content Density
Training and forms become compact list rows with clear actions and links to the complete views, reducing visual density without hiding access to the larger system.
Engineering Approach
The mobile interface still responds to the same training, company, forms and attention data as desktop. The difference is presentation: mobile-specific components control density, hierarchy and interaction for the smaller viewport.
Product Workflow + Engineering
Beyond the interface
Purchasing and completing a course crosses multiple parts of the product.
I designed the experience around the full training lifecycle, then implemented the frontend and backend functionality connecting account state, payment, course access, progress, assessment, notifications and certification.
Discover
Course CatalogueSelect
Course + CartPurchase
Account + StripeLearn
Course ContentAssess
Quiz + ProgressComplete
CertificateCart + Checkout

Identity + Purchase
Learners can browse courses and build their cart before signing in. Because purchased training must belong to an account, authentication becomes part of the checkout flow without forcing the learner to rebuild their purchase.
After payment, the purchased course or courses are added to the learner's account and can be started immediately.
Company Purchasing
Company purchasing introduces another layer of responsibility: managers need to choose both what is being purchased and exactly who should receive the training.
Select Course
Choose the required training.Select Employees
Choose who should receive access.Review
Confirm the assignment before payment.Checkout
Complete payment securely through Stripe.Assign
Training is added to the selected learners.Notify
Receipt to manager + course email to learners.Company Flow

Employee selection and review happen before payment so the assignment is explicit before it affects multiple accounts.
Learning + Completion
Learning

Certificate

Course content can include PDF material, supporting documents and video resources. Multi-part courses expose progress throughout the experience.
Quiz answers are stored as the learner works through the assessment. A score of 85% or higher is required to pass.
Passing marks the training as complete while keeping the course content available for future review. Learners can then complete the follow-up questionnaire and access their certificate.
Certificates can be downloaded by the learner and are also stored in S3 so they remain available after the original completion session.
Behind the interface
Interactions + application state
Requests + business logic
Protected access + permissions
MongoDB · Stripe · S3 · Email
Frontend feedback and backend state stay connected throughout the workflow, while protected operations are validated server-side rather than relying on the interface alone.
Internal Tools + Platform Operations
Behind the learner experience
Yoda is not only a training interface. It also includes the operational tools required to manage the platform itself.
I built internal interfaces for managing courses, quizzes, companies, users, forms, manuals, newsletters and training activity without relying on direct database changes for normal platform operations.
Operational Overview
More data. More controls. Different design priorities.

Content Operations
Courses and quizzes are created directly inside the application, alongside newsletters, manuals and form resources. The admin experience supports the ongoing content work required to keep the training platform current.
People + Companies
Administrators can manage users and companies, review platform information, assign training and perform the same company-level management tasks available to managers with broader administrative access.
Platform Control
Admins can edit platform data, work with company resources, upload on behalf of organizations and trial-run form workflows, while sensitive actions can be restricted when the surrounding data relationships make a generic delete unsafe.
Operational interfaces
These screens expose more controls, more data and more actions than the learner-facing experience. The priority shifts toward scanability, hierarchy, efficient management and clear system feedback.
Overview + Administration

Content Operations

Communication

Not every database entity can be treated the same way. A course can become connected to learners, training records and completion history, so destructive actions require additional restrictions rather than a universal delete pattern.
Permission-aware tooling
Administrators can view and edit company form resources, upload on behalf of a company and perform a trial run of the workflow without completing the form as the company user.
Manage the company's form resources.
Act on behalf of the company where required.
Test the workflow without producing a real submission.
Newsletter management also lives inside the platform. Admins can write, edit and remove newsletter content and trigger the email send without moving the workflow into a separate publishing system.
Iteration + Product Evolution
2024 → Present
Shipping was never the end of the design process.
Yoda has continued to grow as new workflows, product areas and requirements have been introduced. Rather than treating the original interface as permanent, I use implementation and continued testing as feedback for what should be simplified, separated or expanded.
Dashboard Hierarchy
The original learner dashboard reflected the product that existed at the time: training. Three primary areas surfaced incomplete, completed and all available courses.
As the platform expanded, that structure became less useful. Company training, forms and more nuanced course states introduced new demands on the dashboard.
Initial Product

Expanded Product

Completed training and the full catalogue no longer need to dominate the dashboard. The current experience prioritizes incomplete or expiring training and the actions that require the learner's attention now.
Workflow Iteration
Digital forms introduced one of the most complex interaction problems in the platform. A reusable form template can produce many individual entries, which means the interface has to distinguish between managing the template, accessing previous entries and completing the form itself.
Too many responsibilities
Completion and management competed for attention.
Entry volume made the screen increasingly dense.
Application state became unnecessarily difficult to manage.
Test
Refine
Separate
One responsibility at a time
Management
Choose what you need to do.View Entries
Access Form
Focused Task
Complete the form without historical clutter.Entry history remains available when needed without competing with the primary form-completion experience.
A scalable interface is not always the one that fits more onto a screen. Sometimes it is the one that knows when to separate responsibilities.
Engineering Evolution
The platform's core architecture has remained stable even as the product around it has grown. New requirements have expanded schemas, navigation, permissions and workflows without requiring the application to be repeatedly restructured.
Core Training
Courses + learner accountsCompany Tools
Employees + assignments + oversightDigital Forms
Templates + entries + permissionsCheckout Evolution
PayPal → StripeNew Access Models
Expanded permissions + navigationArchitectural Payoff
New checks and requirements have been added as the product has matured, while the underlying data and application structure has continued to support expansion.
Even a larger infrastructure change, migrating checkout from PayPal to Stripe, could be introduced within the existing product while simplifying the resulting purchase experience.
What the project changed
The biggest evolution was not learning to use reusable components or separate concerns. It was learning which decisions remain manageable as a production product keeps accumulating requirements.
Inputs and user actions are treated as unpredictable. Validation, trimming and checks happen before data is trusted.
Frontend, backend and file structures have evolved toward patterns that remain easier to navigate as the number of features grows.
When a workflow becomes difficult to understand or maintain, the answer is not always another condition. Sometimes a responsibility belongs somewhere else.
User Dashboard
Interface refinementTraining Experience
Visual + interaction refinementComponent System
Documentation + Storybook