Skip to content

Commit e12184a

Browse files
author
UEAB ODeL
committed
docs: enhance Formulus installation guide with screenshots and Obtainium instructions
1 parent 434633c commit e12184a

File tree

12 files changed

+316
-100
lines changed

12 files changed

+316
-100
lines changed

docs/getting-started/installing-formulus.md

Lines changed: 127 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ Complete guide for installing the Formulus mobile application on Android devices
1010

1111
Formulus is available for Android devices through multiple installation methods. Choose the method that best fits your needs:
1212

13-
- **F-Droid** (Recommended for end users) - Official app store for free and open source Android apps
14-
- **Direct APK** - Download and install the APK file directly
13+
- **Obtainium** (Recommended) - App manager that installs Formulus directly from GitHub releases, including pre-release versions. Install Obtainium via F-Droid or direct download.
14+
- **Direct APK** - Download and install the APK file directly from GitHub releases
1515
- **Development Build** - For developers who want to build from source
1616

17+
**Note**: F-Droid is used to install Obtainium, which then installs Formulus. F-Droid does not directly install Formulus.
18+
1719
## System Requirements
1820

1921
Before installing, ensure your device meets these requirements:
@@ -27,50 +29,108 @@ Before installing, ensure your device meets these requirements:
2729

2830
## Installation Methods
2931

30-
### Method 1: F-Droid (Recommended)
32+
### Method 1: Obtainium (Recommended)
33+
34+
Obtainium is the recommended method for installing Formulus. It allows you to install and update Formulus directly from GitHub releases, including pre-release versions. You can install Obtainium via F-Droid or by downloading it directly.
35+
36+
#### Step 1: Install Obtainium
37+
38+
You have two options to install Obtainium:
39+
40+
##### Option A: Install Obtainium via F-Droid (Recommended)
3141

32-
F-Droid is the recommended installation method for end users. It provides automatic updates and ensures you're installing the official version.
42+
1. **Open your web browser** and navigate to [f-droid.org](https://f-droid.org/)
43+
2. **Locate the "DOWNLOAD F-DROID" button** on the main page
44+
3. **Tap the "DOWNLOAD F-DROID" button** to download the F-Droid APK file
45+
4. **Enable installation from unknown sources**:
46+
- Go to **Settings****Security****Unknown Sources** (or **Apps****Special app access****Install unknown apps** on newer Android versions)
47+
- Select your browser (Chrome, Firefox, etc.) from the list
48+
- **Enable "Allow from this source"** toggle switch
49+
- Read and acknowledge the security warning about installing apps from unknown sources
50+
5. **Return to your browser** and open the downloaded F-Droid APK file
51+
6. **Tap "Install"** when prompted
52+
7. **Wait for installation** to complete, then tap **"Open"** to launch F-Droid
3353

34-
#### Step 1: Install F-Droid
54+
![F-Droid Download Page](/img/installation/f-droid-download.png)
3555

36-
If you don't have F-Droid installed:
56+
8. **Open F-Droid** and search for "Obtainium"
57+
9. **Tap on Obtainium** in the search results
58+
10. **Tap "Install"** to install Obtainium
59+
11. **Wait for installation** to complete
3760

38-
1. **Download F-Droid** from [f-droid.org](https://f-droid.org/)
61+
##### Option B: Install Obtainium Directly from GitHub
62+
63+
1. **Download Obtainium** from the [Obtainium releases page](https://github.com/ImranR98/Obtainium/releases)
3964
2. **Enable installation from unknown sources**:
40-
- Go to Settings → Security → Unknown Sources
41-
- Enable the option for your browser or file manager
42-
3. **Install F-Droid** by opening the downloaded APK file
65+
- Go to **Settings****Security****Unknown Sources** (or **Apps****Special app access****Install unknown apps** on newer Android versions)
66+
- Select your browser from the list
67+
- **Enable "Allow from this source"** toggle switch
68+
- Acknowledge the security warning
69+
3. **Install Obtainium** by opening the downloaded APK file
70+
4. **Tap "Install"** when prompted in the installation confirmation dialog
71+
5. **Wait for installation** to complete
72+
73+
![Obtainium Installation](/img/installation/obtainium-install.png)
74+
75+
#### Step 2: Add ODE Repository to Obtainium
4376

44-
#### Step 2: Add Formulus Repository
77+
1. **Open Obtainium** on your device
78+
2. **Navigate to the "Add app" tab** in the bottom navigation bar (indicated by a "+" icon)
79+
3. **Enter the GitHub repository URL** in the "App source URL" field:
80+
- The field should contain: `https://github.com/OpenDataEnsemble/ode`
81+
- Ensure the full URL is entered correctly
82+
4. **Configure GitHub options** (important for pre-release versions):
83+
- **Enable "Include prereleases"** toggle - This is crucial for installing alpha/beta versions of Formulus
84+
- **Enable "Fallback to older releases"** toggle - This allows Obtainium to use older releases if newer ones are unavailable
85+
5. **Tap the "Add" button** to save the repository
86+
6. **Wait for Obtainium to fetch** the repository information and available releases
4587

46-
1. **Open F-Droid** on your device
47-
2. **Navigate to Settings****Repositories**
48-
3. **Tap the "+" button** to add a new repository
49-
4. **Enter the Formulus repository URL** (provided by your organization)
50-
5. **Tap "Add"** to save the repository
88+
![Obtainium Add App Screen](/img/installation/obtainium-add-app.png)
89+
90+
**Important**: Make sure "Include prereleases" is enabled (toggle switched to the right/purple) to see and install pre-release versions like `v1.0.0-alpha.12`.
5191

5292
#### Step 3: Install Formulus
5393

54-
1. **Open F-Droid** on your device
55-
2. **Navigate to the Updates tab** or search for "Formulus"
56-
3. **Find Formulus** in the app list
57-
4. **Tap on Formulus** to open the app details
58-
5. **Tap "Install"** to begin installation
59-
6. **Wait for installation** to complete
60-
7. **Tap "Open"** to launch the app
94+
1. **Open Obtainium** and navigate to the **"Apps"** tab
95+
2. **Find "ode"** in your apps list (it should appear after adding the repository)
96+
3. **Tap on "ode"** to open the app details page
97+
4. **Review the app information**:
98+
- App name: **ode**
99+
- Developer: **OpenDataEnsemble**
100+
- Package: `org.opendataensemble.formulus`
101+
- Latest version: `v1.0.0-alpha.12` (or current version)
102+
- Status: **Not installed**
103+
5. **Tap the "Install" button** at the bottom of the screen
104+
6. **Confirm installation** when prompted:
105+
- A dialog will appear showing the **Formulus** app icon and asking "Do you want to install this app?"
106+
- **Tap "Install"** in the confirmation dialog (the "Cancel" button is on the left)
107+
7. **Wait for download and installation** to complete
108+
8. **Find Formulus** in your app drawer or search for it:
109+
- Open your app drawer or launcher
110+
- Search for "Formulus" or "formulu"
111+
- The app icon shows a yellow giraffe head with a green background and white clipboard
112+
- **Tap on Formulus** to launch the app
113+
114+
![ODE App Details in Obtainium](/img/installation/obtainium-ode-details.png)
115+
116+
![Formulus Installation Dialog](/img/installation/formulus-install-dialog.png)
117+
118+
![Formulus App Search](/img/installation/formulus-app-search.png)
61119

62120
#### Automatic Updates
63121

64-
Once installed via F-Droid, Formulus will automatically update when new versions are available:
122+
Obtainium will automatically check for updates:
65123

66-
1. **F-Droid checks for updates** periodically
67-
2. **Notifications appear** when updates are available
68-
3. **Tap the notification** or open F-Droid to update
69-
4. **Updates install automatically** through F-Droid
124+
1. **Open Obtainium** and navigate to the **"Apps"** tab
125+
2. **Apps with available updates** will be marked
126+
3. **Tap on "ode"** to see update details
127+
4. **Tap "Update"** or **"Install"** to install the new version
128+
5. **Confirm the update** when prompted
129+
6. **App data is preserved** during update
70130

71131
### Method 2: Direct APK Installation
72132

73-
If F-Droid is not available or you prefer direct installation:
133+
If Obtainium is not available or you prefer direct installation:
74134

75135
#### Step 1: Download the APK
76136

@@ -79,9 +139,13 @@ If F-Droid is not available or you prefer direct installation:
79139

80140
#### Step 2: Enable Unknown Sources
81141

82-
1. **Go to Settings****Security** (or **Apps** on newer Android versions)
83-
2. **Enable "Install unknown apps"** or **"Unknown Sources"**
84-
3. **Select your browser or file manager** and enable installation
142+
1. **Go to Settings****Security** (or **Apps****Special app access****Install unknown apps** on newer Android versions)
143+
2. **Select your browser or file manager** from the list (e.g., Chrome, Firefox, Files)
144+
3. **Enable "Allow from this source"** toggle switch
145+
4. **Read and acknowledge** the security warning:
146+
> "Your phone and personal data are more vulnerable to attack by unknown apps. By installing apps from this source, you agree that you are responsible for any damage to your phone or loss of data that may result from their use."
147+
148+
![Enable Unknown Sources](/img/installation/enable-unknown-sources.png)
85149

86150
#### Step 3: Install the APK
87151

@@ -95,7 +159,7 @@ If F-Droid is not available or you prefer direct installation:
95159

96160
### Method 3: Development Build
97161

98-
For developers who want to build and install from source, see the [Development Installation Guide](/development/formulus-development).
162+
For developers who want to build and install from source, see the [Development Installation Guide](development/formulus-development).
99163

100164
## Post-Installation Setup
101165

@@ -177,31 +241,31 @@ To verify that Formulus is installed correctly:
177241
- Verify firewall settings aren't blocking the connection
178242
- For local development, use `10.0.2.2` instead of `localhost` on Android emulator
179243

180-
### F-Droid Not Finding Updates
244+
### Obtainium Not Finding Updates
181245

182-
**Problem**: F-Droid doesn't show Formulus updates.
246+
**Problem**: Obtainium doesn't show Formulus updates.
183247

184248
**Solutions**:
185-
- Ensure the Formulus repository is added correctly
186-
- Refresh F-Droid repositories: Settings → Repositories → Tap refresh
187-
- Check that F-Droid has internet connection
188-
- Verify repository URL is correct and accessible
249+
- Ensure the ODE repository is added correctly in Obtainium
250+
- Check that "Include prereleases" is enabled if you want pre-release versions
251+
- Refresh Obtainium: Open the app and wait for it to check for updates
252+
- Check that Obtainium has internet connection
253+
- Verify repository URL is correct: `https://github.com/OpenDataEnsemble/ode`
189254

190255
## Updating Formulus
191256

192-
### Via F-Droid
257+
### Via Obtainium
193258

194-
Updates are automatic when using F-Droid:
195-
196-
1. **F-Droid checks for updates** automatically
197-
2. **Notification appears** when updates are available
198-
3. **Open F-Droid** and navigate to Updates tab
199-
4. **Tap "Update"** next to Formulus
200-
5. **Wait for download and installation**
259+
1. **Open Obtainium** and navigate to the **"Apps"** tab
260+
2. **Find "ode"** in your apps list
261+
3. **Tap on "ode"** to see update information
262+
4. **Tap "Install"** or **"Update"** if a newer version is available
263+
5. **Confirm the installation** when prompted
264+
6. **App data is preserved** during update
201265

202266
### Via Direct APK
203267

204-
1. **Download the latest APK** from the releases page
268+
1. **Download the latest APK** from the [releases page](https://github.com/OpenDataEnsemble/ode/releases)
205269
2. **Install over existing installation** (no need to uninstall)
206270
3. **App data is preserved** during update
207271

@@ -223,10 +287,21 @@ To uninstall Formulus:
223287

224288
**Important**: Ensure all data is synced to the server before uninstalling.
225289

290+
## Finding Formulus After Installation
291+
292+
After installation, you can find and launch Formulus:
293+
294+
1. **Open your app drawer** or launcher
295+
2. **Search for "Formulus"** or "formulu" using your device's search function
296+
3. **Look for the Formulus icon**: A yellow giraffe head with a green background and white clipboard with checkmarks
297+
4. **Tap on the Formulus icon** to launch the app
298+
299+
![Finding Formulus App](/img/installation/formulus-app-search.png)
300+
226301
## Related Documentation
227302

228-
- [Formulus Features](/using/formulus-features) - Learn about app features and usage
229-
- [Your First Form](/using/your-first-form) - Get started with data collection
230-
- [Synchronization](/using/synchronization) - Understand how data syncs work
231-
- [Development Installation](/development/formulus-development) - For developers building from source
303+
- [Formulus Features](using/formulus-features) - Learn about app features and usage
304+
- [Your First Form](using/your-first-form) - Get started with data collection
305+
- [Synchronization](using/synchronization) - Understand how data syncs work
306+
- [Development Installation](development/formulus-development) - For developers building from source
232307

plugins/fix-docs-links-rehype.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* Rehype plugin to fix internal documentation links
3+
* Runs after remark processing to ensure /docs/ prefix is preserved
4+
*/
5+
function fixDocsLinksRehype() {
6+
return (tree) => {
7+
const {visit} = require('unist-util-visit');
8+
9+
visit(tree, 'element', (node) => {
10+
if (node.tagName === 'a' && node.properties && node.properties.href) {
11+
const href = node.properties.href;
12+
13+
// Skip external links, anchors, and links that already have /docs/
14+
if (
15+
href.startsWith('http://') ||
16+
href.startsWith('https://') ||
17+
href.startsWith('mailto:') ||
18+
href.startsWith('#') ||
19+
href.startsWith('/docs/')
20+
) {
21+
return;
22+
}
23+
24+
// If it's an absolute path starting with / but not /docs/, add /docs/ prefix
25+
if (href.startsWith('/')) {
26+
node.properties.href = '/docs' + href;
27+
}
28+
}
29+
});
30+
};
31+
}
32+
33+
module.exports = fixDocsLinksRehype;

plugins/fix-docs-links.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* Remark plugin to fix internal documentation links
3+
* When routeBasePath is '/docs', Docusaurus strips /docs/ from absolute paths
4+
* This plugin ensures links are correctly formatted for Docusaurus
5+
*/
6+
function fixDocsLinks() {
7+
return (tree) => {
8+
const {visit} = require('unist-util-visit');
9+
visit(tree, 'link', (node) => {
10+
// Skip external links
11+
if (node.url.startsWith('http://') || node.url.startsWith('https://') || node.url.startsWith('mailto:')) {
12+
return;
13+
}
14+
15+
// Skip anchor links
16+
if (node.url.startsWith('#')) {
17+
return;
18+
}
19+
20+
// Skip @site aliases (they're handled by Docusaurus)
21+
if (node.url.startsWith('@site/')) {
22+
return;
23+
}
24+
25+
// If the link is an absolute path starting with / but not /docs/,
26+
// it's a broken internal link - add /docs/ prefix
27+
if (node.url.startsWith('/') && !node.url.startsWith('/docs/')) {
28+
node.url = '/docs' + node.url;
29+
}
30+
});
31+
};
32+
}
33+
34+
module.exports = fixDocsLinks;
38.1 KB
Loading
91.1 KB
Loading
19.8 KB
Loading
75.9 KB
Loading
33.6 KB
Loading
145 KB
Loading
121 KB
Loading

0 commit comments

Comments
 (0)