ForumGo_Pro (formerly ForumCIV Survey Offline) is a robust, offline-first mobile survey application designed for field data collection in areas with limited or no internet connectivity. Built with React Native and Expo, the app enables users to create, manage, and complete surveys entirely offline, with seamless automatic synchronization to the cloud when connectivity is restored.
- β 100% Offline Functionality - Create and complete surveys without internet
- π Automatic Cloud Sync - Data syncs automatically when online
- π Comprehensive Survey Builder - 11 different question types
- π Built-in Analytics - Track survey performance and responses
- π Secure Data Storage - Local SQLite database with encryption
- π GPS Location Support - Capture geographic data with responses
- π· Image Attachments - Add photos to survey responses
- π¨ Modern UI/UX - Beautiful, intuitive interface
- π Cross-Platform - Works on iOS and Android
- Framework: React Native with Expo SDK 54
- Language: TypeScript
- Navigation: React Navigation (Stack + Bottom Tabs)
- State Management: React Context API
- Local Database: Ready for Firebase Firestore
- Network Detection: Ready for Firebase network handling
- Database: Firebase Firestore (Ready for integration)
- Authentication: Firebase Auth (Ready for integration)
- Storage: Firebase Storage (Ready for integration)
- Hosting: Firebase Hosting (Ready for integration)
- Node.js (v16 or higher)
- npm or yarn
- Expo Go app on your mobile device (for testing)
- iOS Simulator (Mac only) or Android Emulator (optional)
- Clone the Repository
cd ForumGo_Pro- Install Dependencies
npm install- Start the Development Server
npx expo start- Run on Device
- Scan the QR code with Expo Go app (Android)
- Scan with Camera app (iOS)
Or run on simulator:
# iOS
npx expo run:ios
# Android
npx expo run:androidForumGo_Pro/
βββ src/
β βββ screens/ # All app screens
β β βββ Auth/ # Login, Register, Splash
β β βββ Dashboard/ # Home, Sync, Analytics
β β βββ Survey/ # Create, List, Take, Preview
β β βββ Settings/ # Settings screen
β βββ components/ # Reusable UI components
β β βββ common/ # Common components
β β βββ survey/ # Survey-specific components
β βββ navigation/ # Navigation configuration
β βββ contexts/ # React Context (Auth, Sync)
β βββ services/ # Business logic
β β βββ database.ts # SQLite operations
β β βββ network.ts # Network detection
β β βββ sync.ts # Sync manager
β β βββ api.ts # API client
β βββ types/ # TypeScript definitions
β βββ utils/ # Helper functions
β βββ constants/ # App constants
βββ assets/ # Images, fonts, etc.
βββ App.tsx # Main app component
βββ app.json # Expo configuration
βββ package.json # Dependencies
βββ tsconfig.json # TypeScript config
Create comprehensive surveys with 11 question types:
- Short Answer - Brief text responses
- Paragraph - Long-form text
- Multiple Choice - Single selection
- Checkboxes - Multiple selections
- Dropdown - Select from list
- Rating Scale - 1-5 star rating
- Yes/No - Binary choice
- Date Picker - Date selection
- Number Input - Numeric values
- Image Upload - Photo attachments
- GPS Location - Geographic coordinates
- All data stored locally in SQLite database
- Surveys and responses saved instantly
- Works completely without internet
- Automatic background sync when online
- Sync queue with retry mechanism
- Conflict resolution built-in
βββββββββββββββββββββββ
β Offline Actions β
β (Create, Answer) β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Local SQLite DB β
β (Pending Status) β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Network Detected β
β (Auto Trigger) β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Sync to Cloud API β
β (Background) β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Mark as Synced β
β (Update Status) β
βββββββββββββββββββββββ
12 Main Screens:
- Splash Screen - App initialization
- Login Screen - User authentication
- Register Screen - New user signup
- Home Dashboard - Central hub with stats
- Survey List - View all surveys (Draft/Published)
- Create Survey - Build new surveys
- Edit Survey - Modify existing surveys
- Preview Survey - Test survey before publishing
- Take Survey - Complete survey responses
- Sync Center - Manage data synchronization
- Analytics Dashboard - View insights and stats
- Settings - App preferences and account
SQLite tables are automatically created on first launch:
users- User accountssurveys- Survey metadataquestions- Survey questionsresponses- Survey answerssync_queue- Pending sync itemsauth_tokens- Authentication tokens
If connecting to a backend server, configure in src/constants/index.ts:
export const API_BASE_URL = 'https://your-api.com/api';
export const API_ENDPOINTS = {
LOGIN: '/auth/login',
REGISTER: '/auth/register',
SYNC: '/sync',
SURVEYS: '/surveys',
RESPONSES: '/responses',
TEMPLATES: '/templates',
};-
First Time Setup
- Download and install the app
- Create an account or login
- App caches credentials for offline use
-
Creating Surveys
- Tap "Create New Survey" on home screen
- Fill in survey details (title, description, category)
- Add questions with desired types
- Save as draft or publish immediately
-
Taking Surveys
- Navigate to "Surveys" tab
- Select a survey to complete
- Answer all required questions
- Submit (saves locally if offline)
-
Syncing Data
- Connect to WiFi or mobile data
- App syncs automatically
- Or manually trigger from Sync Center
- View sync status and pending items
-
Setup Firebase (recommended)
- Create Firebase project
- Configure Firestore database
- Setup Firebase Authentication
- Configure Firebase Storage
-
Configure App
- Update API_BASE_URL in constants
- Build production app
- Distribute to field workers
# Start development server
npm start
# Run on iOS simulator
npm run ios
# Run on Android emulator
npm run android
# Run on web browser
npm run web
# Type checking
npm run tsc
# Lint code
npm run lint# Build for iOS
eas build --platform ios
# Build for Android
eas build --platform android
# Build for both
eas build --platform allCreate .env file in root:
API_BASE_URL=https://your-api.com
API_TIMEOUT=10000
ENABLE_DEBUG=false
User Input β Validation β Generate UUID β Save to SQLite β
Add to Sync Queue β (When Online) β Send to API β
Update Sync Status β Confirm to User
Select Survey β Load Questions β User Answers β
Validate Required β Save Locally β Queue for Sync β
(When Online) β Upload Response β Mark Synced
- All authentication tokens stored securely using
expo-secure-store - SQLite database encrypted on device
- JWT tokens with expiration
- HTTPS for all API communications
- No sensitive data logged in production
- Create survey offline
- Answer survey offline
- Verify data persists after app restart
- Test sync when internet available
- Verify sync retry on failure
- Test all 11 question types
- Check analytics calculations
- Test logout and re-login
- iOS: 13.0 and above
- Android: 5.0 (API 21) and above
- Web: Modern browsers (preview only)
1. Database Not Initializing
# Clear Expo cache
npx expo start -c2. Sync Not Working
- Check network connection
- Verify API endpoint is correct
- Check authentication token validity
3. Navigation Errors
# Reinstall navigation packages
npm install @react-navigation/native @react-navigation/stack @react-navigation/bottom-tabs4. Build Errors
# Clean and reinstall
rm -rf node_modules
npm install- Dark mode support
- Multiple language support (i18n)
- Export surveys to PDF
- Bulk import questions from CSV
- Survey templates library
- Offline maps integration
- Voice recording support
- Signature capture
- Advanced conditional logic
- Team collaboration features
- Real-time collaboration
- Advanced analytics with charts
- Custom branding
- Role-based access control
- API for third-party integrations
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Project Lead: ForumCIV Team
- Development: Community Contributors
- Design: UI/UX Team
- Email: support@forumgo-pro.com
- Documentation: docs.forumgo-pro.com
- Issues: GitHub Issues
- React Native and Expo teams
- All open-source contributors
- Field workers who inspired this project
- ForumCIV community
- β¨ Initial release
- π― Complete offline functionality
- π 11 question types
- π Automatic sync system
- π Analytics dashboard
- π Secure authentication
- π± iOS and Android support
Made with β€οΈ for field data collectors worldwide
# Install dependencies
npm install
# Start development
npx expo start
# Test on physical device
# 1. Install Expo Go on your phone
# 2. Scan QR code from terminal
# 3. App will load on your device
# Build for production
npx eas build --platform allFor more detailed documentation, visit our Wiki.