Formulus Features
Complete user guide for the Formulus mobile application.
Overview
The Formulus app is an offline-first mobile data collection tool that:
- Works offline - Collect data without internet connection
- Syncs when connected - Push data to server when online
- Supports custom apps - Load custom forms and workflows
- Captures rich data - Photos, GPS, signatures, audio, and more
Getting Started
Step 1: Install the App
The Formulus app should be installed on your Android device. If not already installed:
# From your development machine
cd formulus
npm run android
Or install the APK directly:
- APK location:
formulus/android/app/build/outputs/apk/debug/
Step 2: Configure the App
Option A: Scan QR Code (Recommended)
- Open Formulus app on your device
- Tap "Scan QR Code" on the welcome/settings screen
- Point camera at the QR code generated by CLI
- Settings auto-populate - Server URL, username, password
- Tap "Connect" to verify and save
Option B: Manual Configuration
- Open Formulus app
- Go to Settings (gear icon or menu)
- Enter Server URL:
http://YOUR_SERVER_IP(e.g.,http://192.168.100.7) - Enter Username: Your username
- Enter Password: Your password
- Tap "Test Connection" to verify
- Tap "Save"
Step 3: Login
After configuration:
- Navigate to Login screen (if not automatic)
- Credentials should be pre-filled (from QR or manual entry)
- Tap "Login"
- Wait for authentication - Token is stored locally
Success indicators:
- ✅ "Login successful" message
- ✅ Redirected to home/dashboard
- ✅ User info displayed
App Navigation
Main Screens
| Screen | Description | Access |
|---|---|---|
| Home/Dashboard | Overview and quick actions | Default screen |
| Forms | List of available forms | Bottom tab or menu |
| Observations | Saved data records | Bottom tab or menu |
| Sync | Sync status and actions | Bottom tab or menu |
| Settings | App configuration | Menu or gear icon |
| More | Additional options | Menu |
Navigation Elements
- Bottom tabs - Quick access to main sections
- Menu drawer - Swipe from left or tap hamburger (☰)
- Back button - Return to previous screen
- Floating action button - Quick actions (+ button)
Syncing App Bundle
Before using forms, sync the app bundle from the server:
Initial Sync
- Go to Sync screen
- Tap "Sync Now" or "Download App Bundle"
- Wait for download - Progress indicator shows status
- Forms become available after successful sync
Sync Information
The sync screen shows:
- Last sync time - When data was last synced
- Pending uploads - Observations waiting to sync
- Server status - Connection health
- App bundle version - Currently installed version
Manual Resync
To force a fresh download:
- Go to Sync screen
- Tap "Resync" or "Force Download"
- Confirm the action
- Wait for completion
Working with Forms
Viewing Available Forms
- Go to Forms screen
- See list of forms from current app bundle
- Each form shows:
- Form name/title
- Description (if available)
- Icon (if configured)
Starting a New Form
- Tap on a form from the list
- Form opens in the form player
- Fill in fields as required
- Navigate through form sections
Form Field Types
The Formulus app supports various field types:
| Field Type | Description | Input Method |
|---|---|---|
| Text | Single/multi-line text | Keyboard |
| Number | Numeric values | Number keyboard |
| Date | Date selection | Date picker |
| Time | Time selection | Time picker |
| Select | Single choice | Dropdown/radio |
| Multi-select | Multiple choices | Checkboxes |
| Photo | Camera capture | Camera |
| GPS | Location capture | GPS sensor |
| Signature | Digital signature | Touch drawing |
| Audio | Voice recording | Microphone |
| Video | Video recording | Camera |
| File | File attachment | File picker |
| QR Code | Scan QR/barcode | Camera scanner |
Form Navigation
- Swipe left/right - Navigate between sections
- Next/Previous buttons - Move through form
- Progress bar - Shows completion status
- Section tabs - Jump to specific section (if enabled)
Saving a Form
Save as Draft
- Tap "Save Draft" at any time
- Form is saved locally with current data
- Can resume later from Observations screen
- Draft status shown in observation list
Submit/Finalize
- Complete all required fields
- Tap "Submit" or "Finalize"
- Validation runs - Errors shown if any
- Observation saved as pending upload
- Will sync when connection available
Form Validation
Forms may have validation rules:
- Required fields - Must be filled before submit
- Format validation - Email, phone number formats
- Range validation - Min/max values
- Conditional logic - Fields shown based on other answers
Validation errors:
- Red highlight on invalid fields
- Error messages below fields
- Cannot submit until resolved
Managing Observations
Viewing Observations
- Go to Observations screen
- See list of all saved observations
- Each entry shows:
- Form name
- Date/time created
- Status (draft, pending, synced)
- Key data fields
Observation Status
| Status | Icon | Description |
|---|---|---|
| Draft | 📝 | Incomplete, can edit |
| Pending | ⏳ | Complete, awaiting sync |
| Syncing | 🔄 | Currently uploading |
| Synced | ✅ | Successfully uploaded |
| Error | ❌ | Sync failed, retry needed |
Editing Observations
Edit Draft
- Tap on draft observation
- Form opens with saved data
- Make changes
- Save or Submit
Edit Pending (if allowed)
- Tap on pending observation
- May need to "Unlock" for editing
- Make changes
- Re-submit
Deleting Observations
- Long-press on observation or tap menu (⋮)
- Select "Delete"
- Confirm deletion
Note: Synced observations may not be deletable locally.
Syncing Data
Automatic Sync
The app automatically syncs when:
- Network becomes available
- App is opened (background sync)
- Periodically (if configured)
Manual Sync
- Go to Sync screen
- Tap "Sync Now"
- Watch progress - Upload count, status
- Check results - Success/failure messages
Sync Process
- Pull - Download new forms and server data
- Push - Upload pending observations
- Attachments - Upload photos, audio, etc.
- Confirmation - Server acknowledges receipt
Sync Indicators
- Sync icon in status bar - When syncing
- Badge on sync tab - Pending upload count
- Last sync time - On sync screen
- Individual observation status - In list
Offline Mode
When offline:
- ✅ Can fill out forms
- ✅ Can save observations locally
- ✅ Can view previously synced data
- ❌ Cannot upload new data
- ❌ Cannot download new forms
Data syncs automatically when connection returns.
Attachments
Capturing Photos
- Tap photo field in form
- Camera opens
- Take photo or select from gallery
- Review and confirm
- Photo attached to observation
Capturing GPS Location
- Tap GPS field in form
- Location permission requested (first time)
- Wait for GPS fix
- Coordinates captured (lat, long, accuracy)
- May show on map preview
Recording Audio
- Tap audio field in form
- Microphone permission requested (first time)
- Tap record to start
- Speak clearly
- Tap stop when done
- Review and confirm
Capturing Signatures
- Tap signature field in form
- Signature pad opens
- Sign with finger on screen
- Tap "Done" to save
- Tap "Clear" to retry
Settings
Server Settings
- Server URL - Synkronus server address
- Test Connection - Verify connectivity
User Settings
- Username - Current user
- Change Password - Update credentials
- Logout - Clear session
Sync Settings
- Auto-sync - Enable/disable automatic sync
- Sync on WiFi only - Save mobile data
- Sync interval - How often to sync
App Settings
- Notifications - Enable/disable alerts
- Theme - Light/dark mode
- Language - App language
- Clear cache - Free up storage
Best Practices
Data Collection
- Sync before fieldwork - Get latest forms
- Check battery - Ensure sufficient charge
- Test GPS outdoors - Better accuracy
- Save frequently - Avoid data loss
- Sync when possible - Don't wait too long
Offline Work
- Sync before going offline
- Save observations as you go
- Check pending count before leaving field
- Sync immediately when back online
Data Quality
- Fill all required fields
- Double-check entries
- Take clear photos
- Verify GPS accuracy
- Review before submitting