Biruni Connect is a comprehensive university mobile application developed for students and academics. Built with Flutter, it aims to streamline campus life, track events, and provide easy access to university information.
- Firebase Authentication integration
- Google Sign-in support
- Email/Password authentication
- Remember Me functionality
- Password reset / Email verification
- Announcements and news
- Quick access links (Student portal, library, course schedule, etc.)
- Dynamic slider section
- Content detail viewing
- Interactive campus building map
- Building details and directions
- Campus facility information
- Google Maps integration
- Location-based services
- Event calendar and details
- Category-based filtering
- Event registration system
- Calendar integration
- Notification system
- Faculty and department details
- Academic programs
- Contact information
- Social media integration
- Framework: Flutter SDK ^3.5.3
- Backend Services: Firebase (Auth, Firestore, Analytics)
- State Management: BLoC Pattern (flutter_bloc: ^8.1.3)
- Dependency Injection: GetIt and Injectable
- Navigation: Go Router
- Local Storage: Hive and Shared Preferences
- Network: Dio and Retrofit
- Localization: intl
- Map Services: Google Maps Flutter
-
Android:
- Minimum SDK: 21 (Android 5.0)
- Target SDK: 33 (Android 13)
- Google Play Services
-
iOS:
- Minimum iOS Version: 12.0
- CocoaPods
- Google Maps API Key
- Internet access
- Location services (fine and coarse location)
- Calendar read/write
- Network state access
-
Clone the repository:
git clone https://github.com/Mehmettakkan/biruni_connect
-
Install dependencies:
flutter pub get
-
Firebase configuration:
- Create a new project in Firebase Console
- Add configuration files for Android and iOS:
- Android:
google-services.json
- iOS:
GoogleService-Info.plist
- Android:
- Configure FlutterFire using Firebase CLI:
flutterfire configure
-
Google Maps API Key:
- Get API key from Google Cloud Console
- Android: Update API key in AndroidManifest.xml
- iOS: Update API key in AppDelegate.swift
-
Run the application:
flutter run
lib/
├── config/ # App configurations and route management
├── core/ # Core components, themes, and utilities
├── mock/ # Mock data for testing and development
├── screens/ # Application screens and modules
└── shared/ # Shared widgets and components
- Follow Effective Dart guidelines
- Very Good Analysis lint rules applied
- Material 3 design principles
Using BLoC (Business Logic Component) pattern:
- Separate BLoC class for each feature
- State management with Event and State classes
- Data layer abstraction with Repository pattern
- Data in
mock/
directory is used only in development environment - Production uses real data from Firebase Firestore
- Use
--dart-define=USE_MOCKS=true
for testing with mock data
- VS Code or Android Studio
- Flutter and Dart plugins
- Flutter Intl extension
- Firebase CLI
- Git
- Email: mehmetakkan18@gmail.com
- LinkedIn: Mehmet Akkan
- Push Notifications
- Real-time Chat
- Online Course Integration
- Attendance Tracking
- Virtual Student ID