- Initialize Normogen health tracking platform - Add comprehensive project documentation - Add zero-knowledge encryption implementation guide - Set up .gitignore for Rust/Node.js/mobile development - Create README with project overview and roadmap Project is currently in planning phase with no implementation code yet.
82 lines
2.6 KiB
Markdown
82 lines
2.6 KiB
Markdown
# Normogen
|
|
|
|
## Naming
|
|
|
|
Codename, coming from mapudungun, related to Balanced Life. Commercial name to be defined
|
|
|
|
## Purpose
|
|
|
|
To record as many variables related to health as possible, store them in a secure, private manner, to be used by the user, not by corporations. From there, use the data to help the user, not for profit.
|
|
From reminding about medication, to comparing data changes over time, and finding emerging patterns.
|
|
|
|
## Income
|
|
|
|
It will come from subscriptions from users, not from using the data.
|
|
Even if open-source, the architecture is complicated enough that users will want to pay a subscription rather than setting it all up themselves. And the bugfixing coming from open-source users should offset the lost income.
|
|
|
|
## Architecture
|
|
|
|
Client-server architecture, server running on linux docker, clients via web or phone apps (iOS and Android)
|
|
|
|
Rust for the server backend. Nodejs for web server. Clients will be on whatever is best for each platform, which can reuse the web when possible.
|
|
|
|
Data has to be encrypted on storage, only accessible to the user, on the server and on the phone apps.
|
|
It is important to be able to share specific bits of data with external users. (at first, accessed by an expiring link). Therefore, the encryption has to be made in a way that a limited password can access some of the data.
|
|
|
|
It will be open-sourced, both server and clients.
|
|
|
|
### Plugins
|
|
|
|
Mostly for import and export of data
|
|
|
|
|
|
## Application Features
|
|
|
|
### User structure
|
|
|
|
- User login
|
|
- Person, which may not be the logged in user. eg. recording data of a child
|
|
- Family structure (eg. parents, children, elderly under care, etc.)
|
|
|
|
### General
|
|
|
|
- Lab results storage
|
|
- Medication
|
|
- Pill shape
|
|
- Length of take
|
|
- Timetable
|
|
- Drug composition
|
|
- General health statistics, such as weight over time, height, age
|
|
- Medical appointments
|
|
- Regular checkouts
|
|
- Period tracking
|
|
- Pregnancy
|
|
- Dental information
|
|
- Illness records
|
|
|
|
|
|
### Phone app
|
|
|
|
- Pill reminder
|
|
- QR code reader, for access to lab results and others
|
|
- Health statistics from the phone and connected devices, such as:
|
|
- steps
|
|
- physical activity
|
|
- Breathing
|
|
- Sleep patterns
|
|
- Blood pressure
|
|
- Temperature, etc
|
|
- Sync back to the main server at regular intervals
|
|
- Instant nuke option, to delete all data instantly (for privacy)
|
|
|
|
### Lab Results
|
|
|
|
Lab results are not standard format, so there must be a plugin structure that allows to convert data from specific labs
|
|
|
|
### Sensors
|
|
|
|
Most sensors will have a common interface or data will be accessable through the phone's Health API, but there might be cases where a plugin to convert data is needed
|
|
|
|
|
|
|
|
|