VeloDev
arrow_backBack to Portfolio
Case Study

ERIS Mobile App

Easy Recipe Intelligent System

ERIS is a cross-platform mobile application that helps household members plan and manage their food inventory. It integrates meal calendar schedules, barcode grocery scans, automatic stock tracking, and ingredient-based recipes recommendation.

RoleLead Mobile Engineer
Timeline7 Months
CategoryExpo Mobile Application
Storage EngineMongoDB / Local SQLite
Technology Stack
React NativeExpo SDKRedux ToolkitMongoDBExpressSocket.ioPrismaexpo-cameranative-basei18nextPlaywright
ERIS Expo Go Native Workspace
NATIVE SCREENS
Select tabs to view app pages. Click inside mobile viewport to zoom.
Authentication Welcome
zoom_inZoom View

infoAuthentication Welcome

The authentication landing portal for ERIS supporting direct email log-in, registration, and guest mode authorization. Also features internationalization dropdown supporting 22 languages.


System Features

ERIS integrates client-side barcode scanning, automated shopping checklists, and multi-user calendars.

barcode_scanner

Barcode Scanning

Real-time shopping scan engine using expo-camera, looking up barcodes in localized SQLite and adding items instantly into inventory models.

sync

Multi-User Sync

Shared household structures with real-time push synchronization using Socket.io, allowing multiple family members to edit inventories concurrently.

notifications

Meal Notifications

Background scheduling notifications matching preparation times, reminding users to start cooking at selected hours.

translate

i18n Translation

Bilingual database models supporting RO/EN name structures, alongside client i18next localizations covering 22 UI languages.

System Architecture Diagram

Hybrid Native App Architecture

The application is built on top of Expo SDK, coordinating Redux local stores with background synchronization workers, linked to MongoDB database layers.

phone_androidFrontend Framework

  • Expo & React Native: Dev client builds supporting native modules on iOS and Android.
  • Redux Toolkit & Persist: Hydrated AsyncStorage memory layers maintaining local offline caching.
  • native-base components: Consistent layout styling sheets with custom compatibility shims.

dnsAPI & Real-time Services

  • Express & Prisma: Structured server REST routes running Prisma ORM data bindings.
  • Socket.io Streams: WebSockets channels enabling instant household sync on grocery actions.
  • VAPID Push Alerts: Scheduled background service workers triggering push notifications.

databaseDatabase Models

  • Prisma Schema: Models indexing users, tokens, households, products, recipes, and lookup keys.
  • Denormalized JSON: Storing nested objects as documents to manage RO/EN name structures.
  • Prisma sqlite integration: Local server integrations supporting mock sqlite seeding.