Skip to content
All projects
PRJ-04Practical software product

HomeChic

A household organizer that works offline first

HomeChic is a Progressive Web App for running a household. Everything is stored on the device and works without a connection, so the app stays useful whether or not an account exists.

An optional account adds cloud backup, use across devices, and sharing a Home with other people. The server is a backup and sharing layer, not the primary database.

Category
Practical software product
Status
Implemented
Technologies
Vue 3 / TypeScript / Pinia / PWA / IndexedDB / .NET 8 / AWS Lambda / API Gateway / DynamoDB / S3
HomeChic home screen with an alert for expiring food and summaries of products, home items and bills
HomeChic refrigeration list showing food sorted by expiration date with color-coded freshness
HomeChic products screen with search, filters, prices and video status
The real application, shown with its built-in sample data.
A / Capabilities

Product modules

  • Products

    A record of products bought online, with prices, sources and a YouTube content workflow.

  • Home items

    Kitchen, refrigeration and clothes inventories, with expiration tracking for food.

  • Bills and memories

    Due dates, repeating bills and overdue warnings, alongside a shared wall of household photos and posts.

  • Password vault

    A private vault encrypted on the device with a master password the server never sees.

B / Engineering notes

How it is built

  • Offline-first sync

    Every local write joins a queue in the same database transaction. The server compares version numbers, and unsent local changes become conflicts instead of being overwritten.

  • Serverless backend

    Two .NET 8 APIs run on AWS Lambda behind API Gateway, with DynamoDB partitioned per Home and photos in S3.

  • Security by design

    The vault uses AES-GCM with an Argon2id-derived key, alongside rotating refresh tokens and permission checks on every request.

  • Built on MigsLab UI

    The interface uses the same component library as this website.