Project Description
MioCondo is a live product currently active in the market. It is a complete platform for condominium management, consisting of a mobile app (published on Google Play and App Store), a web dashboard for administrators, and a REST API in Laravel. It connects residents, administrators and operational staff on a single platform, digitizing processes that were previously done on paper or WhatsApp. New features are actively being developed and ongoing support is provided.
Key Features
- Common area reservations: Pools, gyms, halls. Date, time and extras selection with instant confirmation
- Payment management: Payment history with Stripe, receipt upload with photo and PDF receipt generation
- QR visitor control: Visit registration and generation of scannable access passes for security
- Package tracking: Delivery tracking with pickup codes and guard registration
- Admin dashboard: Web panel with finances, resident management, delinquents, expenses and analytics
- Push notifications: Alerts for pending payments, confirmed reservations and condominium announcements
- Multi-condominium: Support for users with properties in different residential complexes
- Roles and permissions: SuperAdmin, administrator, staff and resident with differentiated views
Technologies Used
Backend (Laravel)
- PHP 8.2+ with Laravel 11: REST API with modular architecture
- JWT Auth: Stateless authentication with refresh tokens
- Spatie Permissions: Granular role and permission system
- Stripe: Payment processing and subscriptions
- AWS S3: File and receipt storage
- DomPDF + Simple QRCode: Receipt and access code generation
Frontend Web (Next.js)
- Next.js 14 with React: Admin dashboard with SSR
- TailwindCSS 4 + Radix UI: Accessible and styled components
- React Hook Form + Zod: Forms with type-safe validation
- Vitest + Playwright: Unit and E2E testing
Mobile App (Expo)
- React Native + Expo SDK 54: Cross-platform iOS and Android
- Expo Router: File-based navigation
- NativeWind: TailwindCSS for React Native
- Zustand: State management with Expo Secure Store
Architecture
The project consists of three independent applications communicating through the REST API:
- API (Laravel): 50+ models, services, DTOs, policies and observers. Modular architecture with separation of concerns
- Web (Next.js): 27+ feature modules with reusable components, custom hooks and comprehensive testing
- Mobile (Expo): Feature modules with isolated screens, components, hooks and types
Technical Challenges
- Multi-provider authentication: Google Sign-In, Apple Sign-In and email/password with JWT and refresh tokens shared between web and mobile
- Payment system: Stripe integration for fees, automatic PDF generation and delinquent tracking
- Dynamic QR codes: Generation and validation of visitor access codes with configurable expiration
- OTA Updates: Over-the-air updates with EAS Update without going through the stores
- RBAC: Role-based access control that changes UI and available endpoints based on user type