A React Native mobile application for EAMVU (External Asset Management & Verification Unit) officers to manage loan applications in the field.
Mobile App (React Native) β API Service β Backend (Node.js/Express) β Database (PostgreSQL)
This mobile app integrates with the existing ILOS backend system using the same APIs as the web application:
GET /api/applications/department/eamvu- Fetch EAMVU applicationsGET /api/applications/form/:losId- Get application detailsPOST /api/applications/update-status- Update application statusPOST /api/applications/update-comment- Update commentsGET /api/applications/comments/:losId- Get application commentsGET /api/documents/:losId- Get application documentsPOST /api/upload-document- Upload documents
The mobile app matches the UBL branding and styling from the web application:
- Primary Color:
#1E40AF(UBL Blue) - Secondary Color:
#3B82F6 - Header Design: Matches web app navbar styling
- Status Colors: Consistent with web app color scheme
- Typography: UBL brand fonts and styling
- β Real-time application fetching from backend
- β Application details with full form data
- β Status updates (Submit to COPS/CIU/RRU)
- β Document management and status updates
- β Comments system per department
- β Pull-to-refresh functionality
- β Error handling and retry mechanisms
- β Offline-friendly with proper error states
- β UBL branding and styling
- β Phone call integration
- β Maps integration for addresses
- View Assigned Applications - See all applications assigned to EAMVU
- Field Verification - Visit applicants and verify documents
- Status Updates - Submit to next department or return application
- Document Management - Update document collection status
- Comments - Add notes and observations
- Node.js 18+
- React Native CLI
- Android Studio / Xcode
- Backend server running on
localhost:5000
- Install Dependencies
cd ILOS-Mobile-App
npm install- Configure Backend URL
Edit
src/utils/config.js:
development: {
API_BASE_URL: 'http://localhost:5000', // Your backend URL
API_TIMEOUT: 30000,
DEBUG: true,
},- Run the App
# Android
npm run android
# iOS
npm run ios
# Start Metro bundler
npm start- Displays all EAMVU applications
- Pull-to-refresh functionality
- Application cards with key information
- UBL header with officer details
- Complete application information
- Document management
- Status update options
- Comments and notes
- Quick actions (call, maps)
The app uses a configuration system for different environments:
// src/utils/config.js
const ENV = {
development: {
API_BASE_URL: 'http://localhost:5000',
DEBUG: true,
},
production: {
API_BASE_URL: 'https://your-production-backend.vercel.app',
DEBUG: false,
},
};All API endpoints are centralized in the configuration:
export const API_ENDPOINTS = {
EAMVU_APPLICATIONS: '/api/applications/department/eamvu',
APPLICATION_DETAILS: (losId) => `/api/applications/form/${losId}`,
UPDATE_STATUS: '/api/applications/update-status',
// ... more endpoints
};Mobile App β API Service β Backend β Database
User Action β API Call β Backend Update β Database β UI Refresh
API Error β Error Handler β User-Friendly Message β Retry Option
src/
βββ utils/
β βββ api.js # API service layer
β βββ config.js # Configuration
β βββ dataTransformer.js # Data transformation
β βββ mockData.js # Mock data for testing
βββ screens/
β βββ HomeScreen.jsx # Main applications list
β βββ ApplicationDetailScreen.jsx # Application details
β βββ LoginScreen.jsx # Login screen
β βββ SplashScreen.jsx # Splash screen
βββ components/
β βββ StatusBadge.jsx # Status badge component
βββ navigation/
βββ AppNavigator.jsx # Navigation setup
- Centralized API communication
- Error handling and logging
- Request/response interceptors
- Batch operations support
- Converts backend data to mobile format
- Handles different application types
- Status and priority mapping
- Currency and date formatting
- Environment-specific settings
- API endpoints
- Error messages
- App constants
import apiService from './src/utils/api';
// Test backend connection
const testConnection = async () => {
const result = await apiService.testBackendConnection();
console.log('Backend connection:', result);
};// Test EAMVU applications endpoint
const testApplications = async () => {
try {
const apps = await apiService.getEAMVUApplications();
console.log('Applications:', apps);
} catch (error) {
console.error('Error:', error.message);
}
};-
Backend Connection Failed
- Check if backend is running on
localhost:5000 - Verify network connectivity
- Check firewall settings
- Check if backend is running on
-
No Applications Showing
- Verify backend has EAMVU applications
- Check API endpoint
/api/applications/department/eamvu - Review backend logs for errors
-
Status Update Failed
- Verify application exists in database
- Check status values match backend expectations
- Review backend update logic
Enable debug logging in src/utils/config.js:
development: {
DEBUG: true, // Set to true for detailed logs
}- β Lazy loading of application details
- β Efficient data transformation
- β Proper error handling
- β Offline state management
- β Pull-to-refresh for updates
- β Proper component cleanup
- β Efficient list rendering
- β Image optimization
- β API response caching
- β Input validation
- β Error message sanitization
- β Secure API communication
- β Environment-based configuration
- β Android (API 21+)
- β iOS (iOS 12+)
- β React Native 0.80.2
- β Expo compatibility (if needed)
cd android
./gradlew assembleReleasecd ios
xcodebuild -workspace ILOS.xcworkspace -scheme ILOS -configuration ReleaseFor issues or questions:
- Check the backend logs
- Verify API endpoints
- Test with Postman/curl
- Review mobile app logs
- Application fetching
- Status updates
- Document management
- Comments system
- Error handling
- UBL styling
- All core features implemented
- Backend integration complete
- Error handling robust
- UI/UX polished
Mobile App Status: β READY FOR EAMVU OFFICERS
The mobile app is fully integrated with the ILOS backend system and ready for EAMVU officers to use in the field for loan application verification and management.