A comprehensive Flutter application designed for Haramaya University students and staff, providing seamless access to university services, exit exam management, and secure authentication.
- Firebase Authentication: Secure email/password login and registration
- Biometric Authentication: Fingerprint and face recognition for quick access
- Remember Me: Persistent login sessions with secure storage
- Theme Management: Dark/Light mode with system preference support
- Exam Management: Import and manage exam questions via JSON files
- Department-based Organization: Browse exams by department, year, and exam type
- Real-time Exam Taking: Interactive exam interface with progress tracking
- Exam History: View completed and in-progress exam attempts
- Admin Features: Import exam questions (admin-only functionality)
- Student Portal: Direct access to student information systems
- Old Portal: Legacy student portal integration
- Dormitory Management: Search and manage dormitory information
- E-learning Platform: Access to online learning resources
- Registrar Office: Administrative services and forms
- Freshman Program: First-year student resources and information
- Academic Calendar: University calendar and important dates
- Placement Services: Career and placement information
- Responsive Design: Optimized for all screen sizes and orientations
- Modern UI: Material Design with custom theming
- Cross-platform: Works on Android, iOS, Web, Windows, macOS, and Linux
- Offline Support: Cached data for better performance
- Accessibility: Support for screen readers and accessibility features
- Flutter SDK: Version 3.3.1 or higher
- Dart SDK: Version 3.0 or higher
- Firebase Project: Set up with Authentication and Firestore
- Development Environment: Android Studio, VS Code, or your preferred IDE
-
Clone the repository
git clone https://github.com/yourusername/hu-app.git cd hu-app -
Install dependencies
flutter pub get
-
Firebase Configuration
For Android:
- Download
google-services.jsonfrom Firebase Console - Place it in
android/app/
For iOS:
- Download
GoogleService-Info.plistfrom Firebase Console - Place it in
ios/Runner/
For Web:
- Update
lib/firebase_options.dartwith your Firebase configuration
- Download
-
Run the application
flutter run
- Create a new Firebase project at Firebase Console
- Enable Authentication with Email/Password provider
- Create a Firestore database
- Set up security rules for your collections:
exit_exam_questionsuser_exam_attempts
- Download configuration files and add them to your project
- Launch the app and create an account or log in
- Enable "Remember Me" to stay signed in
- Optionally enable biometric authentication in Settings
- Navigate to "Exit Exam" from the main dashboard
- Browse available exams by department
- Select an exam to start
- Complete the exam and review results
- View your exam history and progress
- Select any portal from the main dashboard
- The app will open the portal in an embedded web view
- Navigate through university services seamlessly
- Exam Import: Use the admin account to import exam questions
- JSON Format: Follow the specified JSON structure for exam data
lib/
βββ main.dart # App entry point
βββ firebase_options.dart # Firebase configuration
βββ models/ # Data models
βββ pages/
β βββ auth/ # Authentication pages
β βββ navbar/ # Main navigation
β βββ exit_exam/ # Exam system
β βββ drawer_pages/ # Side drawer pages
β βββ custom_widgets/ # Reusable widgets
β βββ splash/ # Splash screen
βββ utils/ # Utility functions
- Firebase configuration is handled through
firebase_options.dart - No additional environment variables required
Key dependencies include:
firebase_auth: Authenticationcloud_firestore: Databaselocal_auth: Biometric authenticationflutter_secure_storage: Secure storagefile_picker: File import functionalityflutter_inappwebview: Web portal integration
We welcome contributions to improve the Haramaya University app!
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Test thoroughly
- Commit your changes
git commit -m "Add: your feature description" - Push to the branch
git push origin feature/your-feature-name
- Create a Pull Request
- Follow Flutter best practices and conventions
- Write clean, documented code
- Include tests for new features
- Update documentation as needed
- Ensure cross-platform compatibility
If you encounter any issues:
- Check existing issues in the GitHub repository
- Create a new issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Device/OS information
- Screenshots if applicable
This project is proprietary software developed for Haramaya University. All rights reserved.
- Developer: Elias Asefa
- Institution: Haramaya University
- Contact: eliasasefa3@gmail.com
- Haramaya University for the opportunity to develop this application
- Flutter team for the amazing framework
- Firebase for backend services
- All contributors and testers
Made with β€οΈ for Haramaya University