A smart household task management app designed for couples who want to share responsibilities fairly and stay in sync.
DueIt is a mobile app that helps couples manage household tasks together. It goes beyond a simple to-do list — it tracks workload balance, suggests fair task distribution with AI, and gamifies chores to keep both partners engaged.
Built as a full-stack solo project from architecture to deployment.
- Create, assign, and track household tasks with categories, priorities, and due dates
- Recurring tasks with flexible schedules (daily, weekly, monthly, custom)
- Subtask support with completion tracking
- Swipe gestures for quick actions (complete, delete, snooze)
- Smart sorting and filtering by status, category, assignee, and priority
- Invite-code pairing system with end-to-end encrypted data
- Real-time sync between partners via Firestore listeners
- Shared task pool with fair workload distribution
- Partner activity visibility and appreciation reactions
- Natural language chat interface for task management
- AI-powered task generation from templates (cleaning, cooking, maintenance, etc.)
- Smart scheduling suggestions based on workload balance
- Create, edit, complete, and delete tasks directly from chat
- Household questionnaire for personalized task recommendations
- XP system with levels and badges
- Streak tracking for consistent task completion
- Task Roulette — spin to randomly assign tasks
- Weekly summaries and monthly insights
- Celebration animations on milestones
- Workload balance visualization between partners
- Completion rate tracking by category and time period
- Mental load monitoring with burnout detection alerts
- Recurring patterns analysis
- Shareable stats cards
- Offline-first with automatic sync queue (MMKV-backed)
- Push notifications with quiet hours support
- Natural language task parsing ("limpar cozinha amanhã às 15h")
- Calendar integration
- Photo proof for task completion
- Biometric lock for privacy
| Layer | Technology |
|---|---|
| Framework | React Native 0.83 + Expo SDK 55 (New Architecture) |
| Navigation | Expo Router v4 (file-based, typed routes) |
| UI | React Native Paper v5 (Material Design 3) |
| State | Zustand 5 + TanStack Query 5 (MMKV persistence) |
| Forms | React Hook Form + Zod 4 validation |
| Backend | Firebase 12 (Firestore, Auth, FCM, App Check) |
| AI | Google Gemini 2.5 Flash via Firebase AI SDK |
| Animations | Reanimated 4 + Gesture Handler |
| Crypto | Argon2id (react-native-quick-crypto) |
| Payments | RevenueCat |
| Monitoring | Sentry |
| i18n | i18next (Portuguese + English) |
| Testing | Jest 30 + Testing Library (122 suites, 2300+ tests) |
| E2E | Maestro (10 automated flows) |
| CI/CD | GitHub Actions (5-job pipeline) + EAS Build |
src/
├── components/ # 60+ reusable UI components
├── hooks/ # Custom hooks (CRUD factory, mutations, queries)
├── services/ # Business logic layer (AI, crypto, tasks, badges...)
├── stores/ # Zustand stores (auth, UI, subscriptions, celebrations)
├── providers/ # React context providers
├── theme/ # Design system (colors, typography, elevation)
├── i18n/ # Internationalization (PT/EN)
├── utils/ # Helpers (offline queue, analytics, haptics...)
├── validation/ # Zod schemas for all data boundaries
└── types/ # TypeScript type definitions
Key architectural decisions:
- Couple-scoped Firestore — all data lives under
couples/{coupleId}/for natural access control - Generic CRUD factory —
useFirestoreCRUDhook generates type-safe create/update/delete/query hooks - Offline-first — mutation queue in MMKV with conflict resolution (create→update merge, delete supersedes)
- Real-time sync — Firestore
onSnapshotfeeds directly into TanStack Query cache - AI grounded in templates — Gemini responses are Zod-validated and template-constrained, not free-form
- Zero plaintext secrets — Argon2id key derivation, encrypted couple salt, App Check enforcement
- End-to-end encryption for sensitive couple data (Argon2id + AES)
- Firebase App Check (device attestation)
- Input validation at all service boundaries (Zod schemas)
- Firestore Security Rules with couple-scoped access control
- PII scrubbing in error logs (Sentry)
- Unicode bidirectional text protection
- Rate limiting on AI endpoints
- GDPR-compliant data export and deletion
- 122 test suites with 2300+ unit and integration tests
- Coverage thresholds: 70% branches, 80% functions/lines/statements
- Integration tests for critical flows: offline sync, task lifecycle, couple pairing
- 10 Maestro E2E flows running on Android emulator in CI
- CodeQL security scanning (weekly)
Coming soon — screenshots of the app in action
The APK will be available for download once the beta testing phase begins.
This is a private beta — the source code is in a private repository. This showcase repo demonstrates the project scope, architecture, and technical decisions.
Current phase: User testing with 5 beta testers
Pedro Marques — Solo full-stack developer
Built from scratch: architecture, design system, backend, AI integration, testing, and CI/CD pipeline.
DueIt — Tarefas Juntos em Harmonia
