- 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.
89 lines
2.9 KiB
Markdown
89 lines
2.9 KiB
Markdown
# Normogen
|
|
|
|
## Overview
|
|
|
|
Normogen is a privacy-focused health data tracking and management platform. The name comes from Mapudungun, relating to "Balanced Life."
|
|
|
|
## Vision
|
|
|
|
To record as many variables related to health as possible, store them in a secure, private manner, to be used by **you**, not by corporations. From medication reminders to pattern analysis, Normogen puts you in control of your health data.
|
|
|
|
## Key Features
|
|
|
|
### Core Functionality
|
|
- 🔐 **Zero-knowledge encryption** - Your data is encrypted before it reaches the server
|
|
- 👥 **Multi-person profiles** - Track health data for yourself, children, elderly family members
|
|
- 👨👩👧👦 **Family structure** - Manage family health records in one place
|
|
- 🔗 **Secure sharing** - Share specific data via expiring links with embedded passwords
|
|
- 📱 **Mobile apps** - iOS and Android with health sensor integration
|
|
- 🌐 **Web interface** - Access from any device
|
|
|
|
### Health Data Tracking
|
|
- Lab results storage
|
|
- Medication tracking (dosage, schedules, composition)
|
|
- Health statistics (weight, height, trends)
|
|
- Medical appointments
|
|
- Regular checkups
|
|
- Period tracking
|
|
- Pregnancy tracking
|
|
- Dental information
|
|
- Illness records
|
|
- Phone sensor data (steps, activity, sleep, blood pressure, temperature)
|
|
|
|
## Architecture
|
|
|
|
### Technology Stack
|
|
- **Backend API**: Rust
|
|
- **Web Server**: Node.js
|
|
- **Database**: MongoDB (with zero-knowledge encryption)
|
|
- **Frontend**: Web + iOS + Android
|
|
- **Deployment**: Docker on Linux
|
|
|
|
### Security Model
|
|
- **Client-side encryption**: Data encrypted before leaving the device
|
|
- **Zero-knowledge**: Server stores only encrypted data
|
|
- **Proton-style encryption**: AES-256-GCM with PBKDF2 key derivation
|
|
- **Shareable links**: Self-contained decryption keys in URLs
|
|
- **Privacy-first**: No data selling, subscription-based revenue
|
|
|
|
## Documentation
|
|
|
|
- [Introduction](./introduction.md) - Project vision and detailed feature specification
|
|
- [Encryption Implementation Guide](./encryption.md) - Zero-knowledge encryption architecture
|
|
- [Research](./thoughts/research/) - Technical research and planning documents
|
|
|
|
## Development Status
|
|
|
|
🚧 **Current Phase**: Planning/Documentation
|
|
|
|
### Completed
|
|
- ✅ Project vision and requirements
|
|
- ✅ Security architecture design
|
|
- ✅ Encryption implementation guide
|
|
- ✅ Feature specifications
|
|
- ✅ Git repository initialization
|
|
|
|
### Next Steps
|
|
- [ ] Select Rust framework (Actix, Axum, Rocket?)
|
|
- [ ] Design database schema
|
|
- [ ] Implement authentication system
|
|
- [ ] Build CRUD API
|
|
- [ ] Create web frontend
|
|
- [ ] Add encryption layer
|
|
- [ ] Implement sharing functionality
|
|
|
|
## Open Source
|
|
|
|
Normogen is open-source. Both server and client code will be publicly available.
|
|
|
|
## License
|
|
|
|
TBD
|
|
|
|
## Contributing
|
|
|
|
TBD - While in planning phase, contributions are welcome through discussion and documentation improvements.
|
|
|
|
---
|
|
|
|
**Note**: This project is currently in the planning phase. No implementation code has been written yet.
|