A modern Flutter mobile application built with clean architecture principles, featuring Firebase backend integration and Provider state management.
- Framework: Flutter 3.35.7
- Language: Dart ^3.9.2
- Architecture: MVC (Model-View-Controller)
- State Management: Provider
- Backend: Firebase
- Firebase Authentication
- Cloud Firestore
- Firebase Storage
- UI: Material Design 3
- Flutter SDK (3.35.7 or higher)
- Dart SDK (3.9.2 or higher)
- Android Studio (for Android development)
- Xcode (for iOS development - macOS only)
- Firebase project
- Git
-
Clone the repository
git clone https://github.com/Sergetec/mcs-app.git cd mcs-app -
Install dependencies
flutter pub get
-
Run the app
flutter run
This project uses Firebase (mcs-app-f1e37) with the following services:
-
Authentication
- Email/Password sign-in method
- Custom claims for role-based access (admin, patient, doctor)
-
Firestore Database
- Users collection (
users/) - Doctors collection (
doctors/) - Security rules defined in
firestore.rules
- Users collection (
-
Firebase Storage
- For medical documents and images (future implementation)
# Run on connected device/emulator
flutter run
# Run on specific device
flutter run -d <device_id>
# Run in debug mode with hot reload
flutter run --debug# Build APK for Android
flutter build apk
# Build App Bundle for Google Play Store
flutter build appbundle
# Build for iOS
flutter build ios# Run all tests
flutter test
# Run tests with coverage
flutter test --coverageprovider: ^6.1.2- State managementfirebase_core: ^4.2.1- Firebase core functionalityfirebase_auth: ^6.1.2- Firebase authenticationcloud_firestore: ^6.1.0- Cloud Firestore databasefirebase_storage: ^13.0.4- Firebase storagegoogle_fonts: ^6.2.1- Google Fontsintl: ^0.20.2- Internationalization and date formattingshared_preferences: ^2.3.3- Local storage for app preferenceseasy_localization: ^3.0.7- Multi-language support (RO/EN)
flutter_lints: ^5.0.0- Linting rulesflutter_test- Testing framework
Security rules are defined in firestore.rules:
users/- Users can only read/write their own datadoctors/- Read: all authenticated users, Write: admins only- Custom claim
isAdmin: truerequired for admin operations
Deploy rules:
firebase deploy --only firestore:rulesNote: This project is configured for mobile platforms (Android & iOS).