--- date: 2026-01-04T17:39:07-03:00 git_commit: N/A (not a git repository) branch: N/A repository: normogen topic: "Normogen Codebase Documentation - Initial State" tags: [research, codebase, project-status, documentation] status: complete --- # Research: Normogen Codebase Documentation ## Research Question Document the current state of the Normogen project codebase based on introduction.md to understand what exists, where components are located, and how the architecture is planned. ## Summary **Critical Finding:** The Normogen project is currently in the **conceptual/planning phase** only. The codebase contains **no implementation code** whatsoever. The entire project exists as a single design document (`introduction.md`) outlining the planned architecture and features. **Status:** Pre-implementation - Planning Stage ## Detailed Findings ### Current Project State #### What Exists - **Single File Only:** `/home/asoliver/desarrollo/normogen/introduction.md` (2,642 bytes) - **No Git Repository:** Project is not under version control - **No Source Code:** Zero lines of implementation code - **No Configuration:** No Cargo.toml, package.json, docker-compose, or other config files - **No Directory Structure:** Flat directory with only the design document #### What Does NOT Exist (Yet) Based on the plans in introduction.md, the following components are **not yet implemented**: 1. **Backend (Rust)** - No Rust server code - No Cargo.toml or workspace configuration - No database schema or migrations - No encryption implementation - No API endpoints 2. **Web Server (Node.js)** - No package.json - No web server code - No frontend code 3. **Mobile Applications** - No iOS/Swift code - No Android/Kotlin code - No React Native or cross-platform framework setup 4. **Infrastructure** - No Docker configuration - No database setup (PostgreSQL, MongoDB, etc.) - No CI/CD pipelines - No deployment configuration 5. **Plugin System** - No plugin architecture - No import/export implementations - No lab result converters ## Project Vision (From introduction.md) ### Planned Architecture - **Client-Server Model:** Linux Docker server, web and mobile clients - **Tech Stack:** - Backend: Rust - Web Server: Node.js - Mobile: Platform-native or cross-platform - **Security:** End-to-end encryption, data accessible only to user - **Business Model:** Subscription-based, open-source - **Privacy:** No corporate data usage, instant data deletion ("nuke option") ### Planned Features #### User Management - User authentication system - Person records (distinct from logged-in users) - Family structure (parent-child, caregiving relationships) #### Health Data Tracking - Lab results storage - Medication management (shape, schedule, composition) - Health statistics (weight, height, age over time) - Medical appointments - Regular checkups - Period tracking - Pregnancy tracking - Dental records - Illness records #### Phone App Features - Medication reminders - QR code scanner for lab results - Health sensor integration (steps, activity, breathing, sleep, blood pressure, temperature) - Periodic server sync - Instant data deletion #### Plugin System - Import/export functionality - Lab result format converters - Sensor data adapters #### Data Sharing - Selective data sharing with external users - Expiring link-based access - Granular encryption to support partial access ## Code References **No code references available - project has not been implemented yet.** Only reference: - `/home/asoliver/desarrollo/normogen/introduction.md:1-82` - Complete project design document ## Open Questions ### Immediate Next Steps for Implementation 1. **Version Control:** Initialize Git repository 2. **Project Structure:** Create directory layout for Rust backend, Node.js web server, mobile apps 3. **Technology Choices:** - Which Rust web framework? (Actix, Axum, Rocket?) - Which database? (PostgreSQL, MongoDB, SQLite?) - Encryption libraries and key management approach - Mobile app framework choice 4. **MVP Definition:** What is the minimal viable product to start with? ### Architectural Decisions Needed 1. **Encryption Architecture:** How to implement "limited password" access for shared data while maintaining encryption 2. **Plugin System Design:** Define plugin interface and loading mechanism 3. **Data Models:** Design schema for health records, medications, lab results 4. **API Design:** REST vs GraphQL, authentication approach 5. **Mobile Sync Strategy:** Offline-first vs always-online, conflict resolution ### Development Priority What should be built first? - Backend authentication and data models? - Basic web interface? - Mobile app with sensor integration? - Plugin system foundation? ## Recommendation This is a **greenfield project** in the planning phase. Before writing code, the following should be established: 1. **Set up version control** (Git) 2. **Create project structure** with placeholder directories 3. **Choose specific technologies** (Rust framework, database, encryption libraries) 4. **Define MVP scope** - what features are essential for the first version 5. **Create initial README** with setup instructions and contribution guidelines 6. **Consider starting with backend API** before building clients The project vision is clear and well-documented. The next step is to begin implementation.