Phase 1-3 Property Management app for India PG / large owners using the 360Ghar backend.
- Flutter 3.x
- State management: Riverpod
- Navigation: go_router
- Networking: Dio
- Models: Freezed + json_serializable
- Auth storage: flutter_secure_storage
- Env: flutter_dotenv
lib/core: env, storage, dio, error handling, shared widgetslib/features/auth: phone/password auth, profilelib/features/home: dashboard overview + activitylib/features/properties: list, create, edit, detaillib/features/collections: charges, paymentslib/features/tasks: maintenance requestslib/features/more: tenants, expenses, documents, reports, profilelib/features/tenant: tenant navigation + payments + requests + documentslib/features/leases: lease lifecyclelib/features/inspections: inspection checklists + signinglib/features/notifications: device registration + listlib/features/rental_applications: forms, inbox, public submission
cp .env.example .envUpdate .env:
API_BASE_URL=https://api.360ghar.com/api/v1
ENABLE_APPLICATIONS_MODULE=true
ENABLE_PUBLIC_APPLICATIONS=true
Run:
flutter pub get
flutter run- Sign in with phone + password
- Sign up with phone + password (optional name/email)
- Token saved in secure storage
- Dio attaches
Authorization: Bearer <token> - 401 clears token and forces logout
- Tenant role is supported alongside Owner/RM.
- Public rental application links are available at
/public/applications/:slug. - Payment intents are initiated from tenant charges; no gateway is hardcoded.
- Pagination is enabled for large lists (properties, tenants, charges, maintenance).
- In-memory cache is used for dashboard and list data.
- If you add new Freezed models, run:
flutter pub run build_runner build --delete-conflicting-outputs