OrixOrix is a robust, scalable mobile application built with Flutter, following a Feature-Based Architecture. It uses GetX for state management, routing, and dependency injection, Firebase for authentication and real-time database, and Supabase for high-performance image storage.
- Email & Password authentication (Firebase Auth)
- Google Sign-In support
- Secure session handling with GetX
- Cloud Firestore integration
- Live data synchronization
- Supabase Storage for fast image uploads & retrieval
- Cached network images for performance
- GetX state management & navigation
- Internet connectivity monitoring
- Centralized error handling
- Scalable feature-based structure
- Dark and Light theme support
| Category | Technology |
|---|---|
| Framework | Flutter |
| Language | Dart |
| State Management | GetX |
| Navigation | GetX |
| Authentication | Firebase Auth |
| Database | Cloud Firestore |
| Image Storage | Supabase |
| Connectivity | connectivity_plus |
| Image Caching | cached_network_image |
get: ^4.x.x
firebase_core: ^2.x.x
firebase_auth: ^4.x.x
cloud_firestore: ^4.x.x
google_sign_in: ^6.x.x
supabase_flutter: ^2.x.x
connectivity_plus: ^5.x.x
cached_network_image: ^3.x.xRefactored structure based on the current repository and architecture image
lib/
βββ main.dart
βββ app_binding.dart
β
βββ common/
β βββ styles/
β βββ widgets/
β
βββ data/
β βββ repositories/
β
βββ features/
β βββ authentication/
β β βββ controllers/
β β βββ models/
β β βββ views/
β β βββ widgets/
β β
β βββ personalization/
β βββ shop/
β
βββ routes/
β
βββ utils/
βββ constants/
βββ device/
βββ exceptions/
βββ formatters/
βββ helpers/
βββ http/
βββ local_storage/
βββ logging/
- Clear separation of features
- Easy to scale and maintain
- Business logic isolated from UI
- Reusable utilities & widgets
| Login Screen | Home Screen | Store Screen |
|---|---|---|
![]() |
![]() |
![]() |
| Prduct Detail Screen | Profile Screen | Wishlist Screen |
|---|---|---|
![]() |
![]() |
![]() |
Ensure you have installed:
- Flutter SDK
- Git
- Node.js (for Firebase CLI)
- VS Code / Android Studio
git clone https://github.com/Vithu-29/Orix.git
cd Orixflutter pub getnpm install -g firebase-toolsVerify installation:
firebase --versionfirebase logindart pub global activate flutterfire_cliEnsure global pub cache is in your PATH.
flutterfire configure-
Select your Firebase project
-
Choose platforms (Android, iOS, Web if needed)
-
This auto-generates:
firebase_options.dart- Platform-specific config files
-
Go to Firebase Console β Authentication
-
Enable:
- β Email/Password
- β Google Sign-In
For Android, add SHA keys:
cd android
./gradlew signingReportCopy:
- SHA-1
- SHA-256
Add them in:
Firebase Console β Project Settings β Android App
- Firebase Console β Firestore Database
- Create database
- Start in Test Mode (for development)
-
Create a project in Supabase
-
Go to Storage
-
Create a public bucket named
images -
Copy:
- Project URL
- Anon Public Key
Create constants file:
// lib/utils/constants/api_keys.dart
class ApiKeys {
static const String supabaseUrl = 'YOUR_SUPABASE_PROJECT_URL';
static const String supabaseAnonKey = 'YOUR_SUPABASE_ANON_KEY';
}Check devices:
flutter devicesRun app:
flutter run- GetX Bindings for dependency injection
- Repository pattern for data handling
- Centralized exception handling
- Reusable UI components
- Feature isolation for scalability
- Role-based access control
- Push notifications
- Offline Firestore persistence
- Unit & widget testing
- CI/CD with GitHub Actions
If you find this project helpful, please β star the repository and share it!





