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