FeelGram
FeelGram is a personal health journal for Android. It helps you log what you eat, how you move, and how you feel — then correlates those inputs to surface patterns in your wellbeing over time.
> Author: Jason Page ·
Amfile.org
> Version: 1.0.3
> Package:
org.amfile.feelgram
> License: Private / Personal Use
---
Features
Logging
- Food — Log meals by food type, cooking method (seed oil, butter, meat fat, veggie fat, raw, steam), and multi-select taste tags (savory, sweet, spicy, bitter, sour, salty, bland, umami, rich). Add free-text notes.
- Activity — Log workouts and movement by type, intensity (light/moderate/intense), duration in minutes, and notes.
- Feeling — Score your overall state (1–5 emoji scale) plus individual sliders for energy, digestive comfort, and mental clarity. Optionally link to your most recent food or activity log.
- Vitals — Record any combination of: heart rate (bpm), blood pressure (systolic/diastolic mmHg), weight (kg), body temperature (°C), blood oxygen / SpO2 (%), and sleep hours.
Charts (6 tabs, 4 time periods)
All charts support 7-day, 30-day, 90-day, and all-time views.
| Tab | What it shows |
|---|---|
| Overview | Average feeling scores over time |
| Food | Feeling scores correlated by food type |
| Activity | Feeling scores correlated by activity type |
| Timeline | Chronological log of all entries |
| Vitals | Trend lines for recorded vitals |
| Cook Method | Feeling scores correlated by cooking method |
Color coding: green = average score ≥ 4, red = average score ≤ 2, amber = neutral.
Linking logic: Feeling logs are correlated to food/activity logs either by explicit link (set at log time) or by proximity — the closest feeling entry within 2 hours of a food log or 4 hours of an activity log.
History & Export
- Filterable history view (food, activity, feeling, vitals).
- Export all logs to CSV via the system Downloads folder (MediaStore API on Android 10+, legacy path on older devices).
Print Report
- Generates a formatted HTML summary and sends it to the system print dialog (supports PDF save or physical printing).
---
Requirements
- Android 8.0 (API 26) or higher
- No internet permission required — all data is stored locally on-device
---
Tech Stack
| Component | Library / Version |
|---|---|
| Language | Kotlin |
| Min SDK | 26 (Android 8.0) |
| Target SDK | 34 (Android 14) |
| Database | Room 2.6.1 (KSP) |
| Charts | MPAndroidChart 3.1.0 |
| UI bindings | ViewBinding |
| Async | Kotlin Coroutines + lifecycleScope |
---
Building from Source
Requires JDK 21 and Android SDK (API 34). KSP requires JDK 21 specifically.
bash
JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 \
ANDROID_HOME=~/Android/Sdk \
bash gradlew assembleDebug --no-daemon
The debug APK will be output to
app/build/outputs/apk/debug/.
---
Database Schema
All data is stored in a local Room (SQLite) database. No cloud sync or external data transmission occurs.
food_logs —
id,
timestamp,
foodType,
cookingMethod,
tasteTags (CSV),
notes
activity_logs —
id,
timestamp,
activityType,
intensity,
durationMinutes,
notes
feeling_logs —
id,
timestamp,
overallScore (1–5),
energyLevel,
digestiveComfort,
mentalClarity,
mood,
relatedLogId,
relatedLogType,
notes
vitals_logs —
id,
timestamp,
heartRateBpm?,
systolicBp?,
diastolicBp?,
weightKg?,
temperatureC?,
bloodOxygenPct?,
sleepHours?,
notes
---
Design
FeelGram uses an amber-on-black Tron-inspired theme throughout:
Background: #0A0A0A
Primary amber: #FFA000
Bright accent: #FFD740
Monospace fonts on all data displays
---
Privacy
FeelGram requests no network permissions. All logs remain on your device. CSV exports go to your local Downloads folder only.