Zeus Software/Projects/iWork
Case studyWellbeing research · 2025

iWork —
from study design
to data collection.

A platform for designing and conducting wellbeing studies: protocols, multilingual questionnaires and structured results. The researcher and her team manage content and questions independently.

Client
Independent researcher · name withheld
Sector
Research · Wellbeing
Year
2025
01

What is
iWork.

A research console for managing protocols, questionnaires, content and wellbeing study results. The team works with role-based permissions and can connect the platform to other systems.

02

Where we
started.

A researcher designs wellbeing programs, but distributes them via PDF and email. Quizzes kept in spreadsheets, translations redone by hand for every country, responses collected however they come in. A solid protocol, a process that doesn't scale.

i.

The challenge

Turn a wellbeing research protocol into a multilingual platform. The researcher, company manager and employee have distinct permissions and views. Programmes, questionnaires and responses must remain organised and accessible over time.

ii.

Our approach

A shared data model for programmes, questionnaires and content. The researcher manages translations in the console; each user accesses the information permitted by their role. Weekly demos and retained records of removed data.

iii.

The result

Wellbeing programs distributed across multiple countries without going back through manual translation. A research protocol digitized from collection to reporting. The researcher is self-sufficient managing content — no more tickets to change a single question.

→

The researcher's overview.

Study status, group participation, recent activity and protocols awaiting publication: an overview to see where action is needed.

app.iwork · overview
iWork dashboard — research overview with KPIs, cohort compliance and protocols awaiting publication

Admin console · homeThe researcher prepares and publishes programmes in the console, with questionnaires and translations in the same environment. The overview shows study status and recent activity.

Angular 20PrimeNGNgRxSignals · OnPush
03

Key
features.

Four areas for organising studies, collecting responses and monitoring participation. Multilingual content and distinct permissions for team members.

i

Quizzes &
answers

Question editor, multilingual answers, scoring and categories. Versioning and controlled publishing.

ii

Study
protocols

Programmes organised into stages, with activities and conditions for moving to the next stage. Links between questionnaires, categories and wellbeing observations.

iii

Reports
& export

Dashboards for the researcher and CSV or Excel exports, with filters by group, period and category.

iv

Notifications
& mood

Configurable notifications and reminders, FAQs and support requests. Mood observations to follow participation in studies.

04

Three roles,
distinct permissions.

Each role accesses the information and actions assigned to it. Operators can view lists without editing or deleting data.

i.full

Admin

  • Full CRUD across every domain
  • User, role and group management
  • Global settings configuration
  • Export, reports, support requests
  • Publishing quizzes and flows
Full access · reversible actions via soft-delete
ii.primary

User

  • Completes assigned quizzes and protocols
  • Daily mood tracking
  • Views personal strengths
  • Opens support requests, reads FAQ
  • Receives notifications and reminders
Participant profile · self-service experience
iii.read-only

Operator

  • Read-only lists
  • Views aggregated reports
  • Reviews notifications and mood
  • No writes, ever
  • Audit-friendly for compliance
Operational view · zero risk of destructive errors
05

Domains
managed.

Twelve Prisma aggregates with soft-delete (deletedAt) everywhere, multilingual fields stored as JSON (name, description, title) and user scoping on every REST endpoint.

LearningQuiz
LearningFlows
LearningMacro / actions
ContentCategories
ContentItems
ContentStrengths
PeopleUsers
PeopleGroups
PeopleMood
OpsNotifications
OpsReports & export
OpsSupport · FAQ
06

Technical
features.

Architectural choices built to last: a single source of truth for types, lazy loading on admin routes, per-environment configuration, native multilingual support from day one.

i.Multilingual JSONEvery translatable field (name, description, title) is stored as Prisma JSON. No separate translation table, no cross-language join: the payload is already internationalized at the source.
ii.Soft delete everywhereThe deletedAt field is present on every aggregate. No row is ever physically deleted: history, audit and restores stay possible without a backup dump or restore.
iii.Context-aware user scopingThree roles (ADMIN, USER, Operator) with dedicated NestJS guards. Operators see lists as read-only — the backend filters at the repository level, not the controller.
iv.Lazy loading admin routesEvery Angular feature is a lazy route with selective preload. The initial bundle stays under 280 kB gzipped — the admin console loads fast even on corporate 4G connections.
v.Per-environment config.env.{env} files validated at startup with Zod. Dev, staging and production share the same schema — no deploy surprises, no missing variables discovered at 11pm.
vi.Nx monorepo · shared libraryA single @i-work/lib library exposes types between backend and frontend. When the Prisma schema changes, the TypeScript error shows up before the next deploy — not in production.
07

Project
status.

Incremental shipping, no big-bang releases. v1.0.0 is in production; v1.1.0 extends the data model and introduces the aggregated reports the researcher asked for.

● live in production2025
v1.0.0

Foundation release

  • Full admin console: quizzes, protocols, participants
  • REST API /api with JWT & roles
  • Multilingual, soft-delete, context-aware scoping
  • Jest + Playwright test suite in CI
○ in progressQ1 2026
v1.1.0

Reporting & integrations

  • Aggregated reports by group & period
  • Multi-sheet Excel export with saved filters
  • Webhooks for notifications to external systems
  • Mood tracking extended with historical trends
08

Tech
stack.

Nx monorepo, NestJS on the backend, standalone Angular 20 with signals and OnPush on the frontend. Tests written the way code is written: Jest for the API, Playwright for the console.

MonorepoNx
BackendNestJS
ORMPrisma
DatabasePostgreSQL
AuthJWT · REST
TestingJest · Docker
FrontendAngular 20
FrontendStandalone · Signals
StateNgRx
UIPrimeNG
E2EPlaywright
Shared@i-work/lib
✦

A console the researcher and her team use every day — without ever asking for support.

09 — Next stepsAre you a researcher or corporate HR?

Have a wellbeing platform that needs to grow?

Tell us about your studies and how you currently manage protocols, questionnaires and responses. We reply within 48 hours with an initial technical assessment.

Images are for illustrative purposes and do not necessarily reflect the current state of the application.