Skip to content

Metaheurist/Rianell

Repository files navigation

Rianell - personal health dashboard

Rianell is a web-based health tracking app (live site rianell.com). This repository builds the same UI for web, PWA, and Capacitor (Android/iOS project zips), with data visualisation, analytics, and optional cloud sync.

Latest changes: CHANGELOG.md (current v1.46.21 - PWA settings scroll, MOTD spring charge, RN parity).

Here’s what we plan next

docs/next-phase-development-plan.md currently states there are no new planned features in active development; shipped work is summarized in the changelog and app overview.

Tech stack

JavaScript HTML5 CSS3 React TypeScript Vite React%20Native Expo Capacitor%20(legacy) Node.js Python Supabase PWA esbuild ApexCharts GitHub Actions

React Native (Expo) builds: CI produces minified Expo production bundles for iOS + Android as a merge gate.

Android APK (Capacitor, legacy): The WebView opens the legacy dashboard directly (legacy/index.html) so you get a single document-smoother scrolling and lower overhead than nesting the app inside a React iframe. Capacitor is legacy during the transition to React Native (Expo); CI no longer rebuilds Capacitor artifacts, but existing legacy builds remain available in releases/history.

Repository: github.com/Metaheurist/Rianell

CI builds

CI builds (React Native CLI + server + web)

Channel Build
Alpha Android APK (React Native CLI) 216
Alpha iOS (Xcode project zip, RN CLI) 216
Beta Server EXE (x64) 221
Beta Server EXE (x86) 221
Beta Web / PWA (GitHub Pages deploy) 221

Legacy builds (Capacitor — no longer produced by CI; metadata only)

Channel Build
Beta Android APK (Capacitor) 96
Alpha iOS (Xcode project zip, Capacitor) 96

Latest: App build/RNCLI-Android/app-debug-beta.apk · App build/iOS/Health-Tracker-ios-alpha-build-216.zip · App build/Server/rianell-server-x64.exe · App build/Server/rianell-server-x64.exe · App build/Server/rianell-server-x86.exe · legacy Capacitor Android App build/Android/app-debug-beta-96.apk · legacy Capacitor iOS App build/Legacy/Capacitor-iOS/Health-Tracker-ios-alpha-build-96.zip · Workflow #221 · a728c40


Documentation

Long-form sections live under docs/ so the main README stays short. Open them from the repo’s file tree or use the links below.

🔒 Security - full threat model and controls
🌐 Infrastructure & edge security - DNS, Cloudflare, GitHub Pages (no secrets; safe for contributors)
🏠 App overview & features - UI, behaviour, screenshots
⚙️ Installation & usage - server, GitHub Pages, React/Android
🧪 Testing & configuration
⏱️ Performance benchmarks - reports and tooling under benchmarks/; run npm run benchmark
🧠 AI architecture
🗂️ Project reference - tree, deps, dev, GDPR, troubleshooting, security notes
🎨 Styling - CSS layout, tokens, settings carousel, tile pickers, cache bust
📱 Platform parity - web/android/iOS feature contract and CI parity gates
👤 About & support
📜 Changelog - version history and release notes
🚀 Next phase development plan - upcoming build: RN parity, theming, accessibility, AI acceleration

Support contact: jan.andersson@rianell.com


App icons (favicon, PWA, Android source)

Master rasters live under apps/pwa-webapp/Icons/ (Icon-*.png, logo-source.png) without a beta badge.

A separate beta set is generated into apps/pwa-webapp/Icons/beta/ with the same filenames and a theme-green BETA badge placed in the top-right corner (matching the floating + beta chip style). The web app currently points index.html, manifest.json, and notifications.js at this beta set. Regenerate after editing masters:

npm run icons:generate -- --source "C:/path/to/new-icon-source.png"
npm run icons:beta

scripts/prepare-android-assets.mjs prefers apps/pwa-webapp/Icons/beta/logo-source.png (then non-beta masters) when building apps/capacitor-app/assets/logo.png for Capacitor Android icons.


Security

The authoritative guide is docs/SECURITY.md (web app, Android, Python server, encryption, Supabase RLS, CSP). For local secrets, see security/ and security/.env.example.

Supabase Keys (Current Names)

Use Supabase's current naming in security/.env:

  • SUPABASE_PUBLISHABLE_KEY (client-safe key used by web app/cloud sync)
  • SUPABASE_SECRET_KEY (server-only secret; use the service_role key)

Legacy names still work as fallbacks:

  • SUPABASE_ANON_KEY → publishable
  • SUPABASE_SERVICE_KEY → secret/service role

For the PyQt6 server dashboard Wipe Database flow, rows are deleted in-app; sequence auto-reset needs DB SQL access and may fall back to manual SQL if not available.

Security notes

Commit/deploy checklist and supplementary pointers (RLS, CI audits, “do not commit secrets”) are in docs/project-reference.md under Security notes.

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors