Back to Projects

Employee Engagement Platform

B2B SaaS for Gamified Employee Engagement

Overview

React Native mobile app with RTK Query + Redux Persist for offline-first caching, 5 Firebase integrations (Analytics, FCM, Remote Config, Dynamic Links, Firestore), and 30+ Hygen code generators. React web dashboard with 19 Ducks feature modules, atomic design component library, React Query + Redux Toolkit dual state management, and Recharts data visualizations.

Key Features

  • React Native 0.68 mobile app with TypeScript, Reanimated 2 animations, and i18n (5 languages)
  • RTK Query with custom extractRehydrationInfo for offline-first Redux Persist integration
  • 5 Firebase services: Analytics events, FCM push, Remote Config feature flags, Dynamic Links, Firestore sync
  • 30+ Hygen templates reducing component creation from 15 minutes to 30 seconds
  • React web dashboard with atomic design (atoms/molecules/organisms/templates) and Storybook
  • Ducks pattern with Entity Adapter for normalized O(1) state lookups across 19 feature modules

Tech Stack

Mobile

React Native 0.68TypeScriptRedux ToolkitRTK QueryRedux PersistReanimated 2

Web Frontend

React 17TypeScriptRedux ToolkitReact QueryMaterial UIRechartsStorybook

Services

Firebase AnalyticsFCMRemote ConfigDynamic LinksFirestoreBranch.io

Tools

HygenFormikReact Hook FormRollbari18next

Challenges & Solutions

Offline-First Mobile Caching

Problem

Employee engagement app needed instant access to cached data on app restart — loading screens on every launch hurt adoption for factory workers with intermittent connectivity.

Solution

Custom RTK Query extractRehydrationInfo integrates with Redux Persist for seamless cache restoration. refetchOnMountOrArgChange: 30 ensures stale data refreshes automatically. Tag-based invalidation keeps cache consistent without manual management.

19 Feature Modules at Scale

Problem

Web dashboard grew to 19 features (polls, shoutouts, rewards, insights, etc.) with interconnected state — needed consistent patterns without creating a maintenance burden.

Solution

Ducks pattern with Entity Adapter for normalized state. Each feature self-contained with slice, thunks, selectors, and adapter. State reset on logout clears client state while preserving admin configuration. 30+ Hygen templates enforced consistent patterns across the team.

Cross-Platform Deep Linking

Problem

Email confirmation, team invites, and password reset flows needed to work across iOS, Android, and web with different URL schemes and app states.

Solution

Built resolver pattern combining Branch.io and Firebase Dynamic Links. Central Links.resolver.ts parses URLs, routes to appropriate handler (email-confirmation, invite, reset-password), and navigates to the correct screen regardless of app state.

Key Achievements

5 Firebase
Full Firebase integration suite for mobile
30+ Generators
Hygen templates standardizing development workflow
19 Features
Ducks modules with Entity Adapter in web dashboard
Atomic Design
Component library with Storybook documentation