# 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.