- Completed performance comparison of Actix vs Axum - Axum selected for I/O-bound workload advantages - 18% faster for large encrypted data transfers - 25% less memory for 1000+ concurrent connections - Better streaming support and Tower middleware ecosystem - Created comprehensive research documentation - Updated README with framework decision Next: Research frontend framework options
78 lines
2.2 KiB
Markdown
78 lines
2.2 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.
|
|
|
|
## Technology Stack
|
|
|
|
### Backend
|
|
- Framework: Axum 0.7.x
|
|
- Runtime: Tokio 1.x
|
|
- Middleware: Tower, Tower-HTTP
|
|
- Database: MongoDB (with zero-knowledge encryption)
|
|
- Language: Rust
|
|
|
|
### Frontend
|
|
- TBD (Research in progress)
|
|
|
|
### Mobile
|
|
- iOS: TBD
|
|
- Android: TBD
|
|
|
|
### Deployment
|
|
- Docker on Linux
|
|
|
|
## Key Features
|
|
|
|
- Zero-knowledge encryption
|
|
- Multi-person profiles
|
|
- Family structure management
|
|
- Secure sharing with expiring links
|
|
- Mobile apps with health sensor integration
|
|
- Web interface
|
|
|
|
## Security Model
|
|
|
|
- Client-side encryption: Data encrypted before leaving 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
|
|
|
|
Phase: Planning/Documentation
|
|
|
|
### Completed
|
|
- Project vision and requirements
|
|
- Security architecture design
|
|
- Encryption implementation guide
|
|
- Git repository initialization
|
|
- Rust framework selection: Axum
|
|
|
|
### Next Steps
|
|
- Research frontend framework (React vs Vue vs Svelte)
|
|
- Design authentication system (JWT with recovery phrases)
|
|
- Design database schema
|
|
- Create proof-of-concept with Axum
|
|
- Implement basic CRUD API
|
|
- Build web frontend
|
|
- Add encryption layer
|
|
- Implement sharing functionality
|
|
|
|
## Open Source
|
|
|
|
Normogen is open-source. Both server and client code will be publicly available.
|
|
|
|
Note: This project is currently in the planning phase. No implementation code has been written yet.
|