meowbanky/OOUTH-Staff-Management-Mobile-App
A Flutter mobile application for managing staff Human Resource and Payroll for OOUTH.
OOUTH Staff Management Mobile App
A complete HR & Payroll solution for Olubisi Onabanjo University Teaching Hospital.
Access payslips, pension reports, and duty rosters on the go.
๐ฑ Features
Core Features
-
Payslip Management
- View payslips for different payment periods
- Download payslips as PDF
- Compare payslips across periods
- Visual analytics with charts and graphs
-
Pension Report โจ New
- View pension contribution history
- Filter by period range or view all periods
- Download pension reports as PDF
- Visual contribution trends with charts
- Summary statistics (total contributions, average amount)
-
Duty Rota
- View duty schedules
- Calendar-based interface
- Shift management
-
Profile Management
- View and edit personal information
- Update profile details
- Track approval status
-
Notifications
- Real-time notifications
- Unread count badges
- Push notifications support
๐ธ App Screenshots
| Dashboard | Payslip View | Pension Report | Duty Rota |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
๐ ๏ธ Technical Stack
- Framework: Flutter 3.32.1
- Language: Dart 3.5.4
- State Management: Provider
- HTTP Client: Dio
- PDF Generation: pdf package
- Charts: fl_chart
- Authentication: JWT-based
- Storage: flutter_secure_storage, shared_preferences
- Biometric Auth: local_auth
๐ Prerequisites
- Flutter SDK 3.32.1 or higher
- Dart SDK 3.5.4 or higher
- Android Studio / Xcode (for mobile development)
- Android SDK 36
- Android NDK 27.0.12077973
- Gradle 8.11.1
- Android Gradle Plugin 8.9.1
- Kotlin 2.1.0
๐ Getting Started
Installation
-
Clone the repository
git clone https://github.com/meowbanky/OOUTH-Staff-Management-Mobile-App.git cd OOUTH-Staff-Management-Mobile-App -
Install dependencies
flutter pub get
-
Configure Android
- Ensure
android/key.propertiesexists with keystore configuration - Keystore file should be at
android/app/upload-keystore.jks
- Ensure
-
Run the app
flutter run
๐ฆ Building the App
Build Release APK
Use the automated build script:
cd oouthsalary_mobile
./version_bump.shThe script will:
- Prompt for version bump type (Major/Minor/Patch)
- Update version in
pubspec.yaml - Create
version.jsonfiles - Build release APK files (split per architecture + universal)
- Copy APKs to
oouthsalary/download/folder - Generate version information for download page
Manual Build
# Build universal APK
flutter build apk --release
# Build split APKs (smaller file sizes)
flutter build apk --split-per-abi --releaseBuild Locations
- Universal APK:
build/app/outputs/flutter-apk/app-release.apk - ARM64:
build/app/outputs/flutter-apk/app-arm64-v8a-release.apk - ARMv7:
build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk - x86_64:
build/app/outputs/flutter-apk/app-x86_64-release.apk
๐ API Endpoints
The app connects to: https://oouthsalary.com.ng/auth_api
Authentication
POST /api/auth/login.php- User loginPOST /api/auth/reset_password.php- Password resetGET /api/auth/get_employee.php- Get employee details
Payroll
GET /api/payroll/periods.php- Get payment periodsGET /api/payroll/payslip.php- Get payslip dataGET /api/payroll/pension_report.php- Get pension report data โจ New
Profile
GET /api/profile/get_profile.php- Get profilePOST /api/profile/submit_changes.php- Submit profile changesGET /api/profile/get_approval_status.php- Get approval status
Other
GET /api/departments/get_departments.php- Get departmentsGET /api/duty/duty_rota.php- Get duty rotaGET /api/auth/notifications.php- Get notifications
๐ Project Structure
oouthsalary_mobile/
โโโ lib/
โ โโโ main.dart # App entry point
โ โโโ models/ # Data models
โ โโโ screens/ # UI screens
โ โ โโโ dashboard_screen.dart
โ โ โโโ payslip_screen.dart
โ โ โโโ pension_report_screen.dart # โจ New
โ โ โโโ ...
โ โโโ services/ # API services
โ โ โโโ api_service.dart
โ โ โโโ payslip_service.dart
โ โ โโโ pension_service.dart # โจ New
โ โ โโโ ...
โ โโโ providers/ # State management
โ โโโ widgets/ # Reusable widgets
โ โโโ utils/ # Utilities
โโโ android/ # Android configuration
โโโ ios/ # iOS configuration
โโโ assets/ # Images, fonts, etc.
โโโ version_bump.sh # Build & deployment script
โโโ version.json # Version information
๐ Security
- JWT token-based authentication
- Secure storage for sensitive data
- Biometric authentication support
- Encrypted API communications
๐ฑ Download
The app can be downloaded from:
- Download Page: https://oouthsalary.com.ng/download.html
- Direct APK: https://oouthsalary.com.ng/download/oouth_mobile.apk
Version information is available at:
https://oouthsalary.com.ng/download/version.jsonhttps://oouthsalary.com.ng/download/version.php
๐ Deployment
Automated Deployment
-
Update version
./version_bump.sh
Select version bump type when prompted.
-
Files are automatically:
- Built as release APKs
- Copied to
oouthsalary/download/folder - Version info updated in
version.json
-
Upload to server
- Upload APK files to web server
- Ensure
download.htmlis accessible - Verify version.json is accessible
Manual Deployment
- Build APK:
flutter build apk --release - Copy APK to
oouthsalary/download/oouth_mobile.apk - Update
oouthsalary/download/version.json - Upload files to server
๐ Version Information
Current version: 1.1.0+2
Version format: MAJOR.MINOR.PATCH+BUILD_NUMBER
- Major: Breaking changes
- Minor: New features
- Patch: Bug fixes
- Build: Incremental build number
๐ Troubleshooting
Build Issues
Gradle/Kotlin errors:
cd android
./gradlew clean
./gradlew --stop
cd ..
flutter clean
flutter pub getNDK version mismatch:
- Ensure Android NDK 27.0.12077973 is installed
- Update
android/app/build.gradlewith correct NDK version
Signing errors:
- Verify
android/key.propertiesexists - Check keystore file path in
build.gradle - Ensure keystore file is at
android/app/upload-keystore.jks
Runtime Issues
PDF generation blank:
- Check console logs for pension data structure
- Verify API returns data in expected format
- Ensure pension data is not empty
API connection errors:
- Verify base URL:
https://oouthsalary.com.ng/auth_api - Check network connectivity
- Verify JWT token is valid
๐ Changelog
Version 1.1.0 (Current)
- โจ Added pension report feature
- ๐ Pension contribution history with charts
- ๐ PDF export for pension reports
- ๐ง Improved error handling
- ๐ Fixed PDF generation issues
- ๐ฑ Updated download page
- ๐ง Updated Android build configuration (SDK 36, NDK 27, Gradle 8.11.1)
Version 1.0.0
- ๐ Initial release
- ๐ Payslip viewing and download
- ๐ค Profile management
- ๐ Duty rota access
- ๐ Notifications
๐ฅ Contributing
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
๐ License
Copyright ยฉ OOUTH Salary Management System. All rights reserved.
๐ Support
For issues or questions:
- Check the troubleshooting section
- Review API documentation
- Contact the development team
Built with โค๏ธ for OOUTH Staff



