normogen/thoughts/research/2026-01-04-1739-normogen-codebase-documentation.md
goose e72602d784 Initial commit: Project setup and documentation
- 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.
2026-02-14 11:11:06 -03:00

154 lines
5.3 KiB
Markdown

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