- Remove 28+ temporary debugging documentation files - Remove temporary test scripts and log files - Keep only essential files (quick-test.sh, EDITION2024-FIX.md) - Create PHASE-2.4-SPEC.md with complete feature specifications - Update STATUS.md with current progress and recent issues - Ready to begin Phase 2.4 implementation
249 lines
6.2 KiB
Markdown
249 lines
6.2 KiB
Markdown
# Normogen Development Status
|
|
|
|
**Last Updated**: 2026-02-15 16:33:00 UTC
|
|
**Current Phase**: Phase 2.4 - User Management Enhancement
|
|
|
|
---
|
|
|
|
## Project Overview
|
|
|
|
**Normogen** is an open-source health data platform designed to empower users to control their own health data securely and privately.
|
|
|
|
**Tech Stack**:
|
|
- Backend: Rust + Axum 0.7 + MongoDB
|
|
- Authentication: JWT (access + refresh tokens)
|
|
- Deployment: Docker + Docker Compose
|
|
- Frontend: TBD
|
|
- Mobile: TBD
|
|
|
|
---
|
|
|
|
## Phase Progress
|
|
|
|
### ✅ Phase 2.1: Backend Project Initialization
|
|
**Status**: Complete
|
|
**Date**: 2025-02-10
|
|
|
|
- Project structure created
|
|
- Cargo.toml configured with dependencies
|
|
- Basic error handling setup
|
|
- Configuration management with environment variables
|
|
|
|
---
|
|
|
|
### ✅ Phase 2.2: MongoDB Connection & Models
|
|
**Status**: Complete
|
|
**Date**: 2025-02-12
|
|
|
|
- MongoDB connection implemented
|
|
- Database models defined:
|
|
- User
|
|
- Family
|
|
- Profile
|
|
- HealthData
|
|
- Medication
|
|
- Appointment
|
|
- LabResult
|
|
- Share
|
|
- Repository pattern implemented
|
|
- Database health checks added
|
|
|
|
---
|
|
|
|
### ✅ Phase 2.3: JWT Authentication
|
|
**Status**: Complete
|
|
**Date**: 2025-02-14
|
|
|
|
- JWT access tokens (15-minute expiry)
|
|
- JWT refresh tokens (30-day expiry)
|
|
- Token rotation on refresh
|
|
- Token revocation on logout
|
|
- Password hashing with PBKDF2 (100K iterations)
|
|
- Auth middleware implementation
|
|
- Public vs protected route separation
|
|
|
|
**Commits**:
|
|
- `d63f160` - fix(docker): Update to Rust 1.93 to support Edition 2024
|
|
- `b218594` - fix(docker): Fix MongoDB healthcheck configuration
|
|
- `b068579` - fix(docker): Simplify MongoDB healthcheck and add troubleshooting
|
|
|
|
---
|
|
|
|
### 🚧 Phase 2.4: User Management Enhancement
|
|
**Status**: In Progress
|
|
**Started**: 2026-02-15
|
|
**Last Updated**: 2026-02-15 16:33:00 UTC
|
|
|
|
**Features**:
|
|
1. Password recovery with zero-knowledge phrases
|
|
2. Email verification flow
|
|
3. Enhanced profile management
|
|
4. Account settings management
|
|
|
|
**Implementation**:
|
|
- [ ] Update User model with new fields
|
|
- [ ] Implement password recovery endpoints
|
|
- [ ] Implement email verification endpoints
|
|
- [ ] Implement enhanced profile management
|
|
- [ ] Implement account settings endpoints
|
|
- [ ] Add rate limiting for sensitive operations
|
|
- [ ] Write integration tests
|
|
|
|
**Spec Document**: `PHASE-2.4-SPEC.md`
|
|
|
|
---
|
|
|
|
## Server Status
|
|
|
|
**Environment**: Development
|
|
**Server URL**: http://10.0.10.30:6800
|
|
**Status**: 🟢 Operational
|
|
|
|
**Containers**:
|
|
- `normogen-backend-dev`: Running
|
|
- `normogen-mongodb-dev`: Healthy
|
|
|
|
**Database**:
|
|
- Connected: ✅
|
|
- Database: `normogen`
|
|
- Collections: Users
|
|
|
|
**API Endpoints**:
|
|
- `GET /health` - Health check (public)
|
|
- `GET /ready` - Readiness check (public)
|
|
- `POST /api/auth/register` - User registration (public)
|
|
- `POST /api/auth/login` - User login (public)
|
|
- `POST /api/auth/refresh` - Token refresh (public)
|
|
- `POST /api/auth/logout` - Logout (public)
|
|
- `GET /api/users/me` - Get profile (protected)
|
|
|
|
---
|
|
|
|
## Quick Start
|
|
|
|
### Development
|
|
```bash
|
|
cd backend
|
|
docker compose -f docker-compose.dev.yml up -d
|
|
docker logs normogen-backend-dev -f
|
|
```
|
|
|
|
### Testing
|
|
```bash
|
|
cd backend
|
|
./quick-test.sh
|
|
```
|
|
|
|
### Build for Production
|
|
```bash
|
|
cd backend
|
|
docker build -f docker/Dockerfile -t normogen-backend:latest .
|
|
```
|
|
|
|
---
|
|
|
|
## Recent Issues & Resolutions
|
|
|
|
### Issue 1: Edition 2024 Compilation Error
|
|
**Date**: 2026-02-15
|
|
**Error**: `feature 'edition2024' is required`
|
|
**Cause**: Rust 1.83 didn't support Edition 2024
|
|
**Solution**: Updated Dockerfiles to use Rust 1.93
|
|
**Status**: ✅ Resolved
|
|
|
|
### Issue 2: MongoDB Container Failing
|
|
**Date**: 2026-02-15
|
|
**Error**: Container exiting with "No space left on device"
|
|
**Cause**: `/var` filesystem was 100% full
|
|
**Solution**: Freed disk space in `/var`
|
|
**Status**: ✅ Resolved
|
|
|
|
### Issue 3: Backend Silent Crash
|
|
**Date**: 2026-02-15
|
|
**Error**: Container restarting with no output
|
|
**Cause**: Application exiting before logger initialized
|
|
**Solution**: Added `eprintln!` debug output to `main.rs`
|
|
**Status**: ✅ Resolved
|
|
|
|
### Issue 4: All API Endpoints Returning 401
|
|
**Date**: 2026-02-15
|
|
**Error**: Auth middleware blocking all routes including public ones
|
|
**Cause**: `route_layer` applied to entire router
|
|
**Solution**: Split routes into public and protected routers
|
|
**Status**: ✅ Resolved
|
|
|
|
---
|
|
|
|
## Upcoming Phases
|
|
|
|
### Phase 2.5: Access Control
|
|
- Permission-based middleware
|
|
- Token version enforcement
|
|
- Family access control
|
|
- Share permission management
|
|
|
|
### Phase 2.6: Security Hardening
|
|
- Rate limiting implementation
|
|
- Account lockout policies
|
|
- Security audit logging
|
|
- Session management
|
|
|
|
### Phase 3.1: Health Data Management
|
|
- CRUD operations for health data
|
|
- Data validation
|
|
- Encryption at rest
|
|
- Data export functionality
|
|
|
|
### Phase 3.2: Medication Management
|
|
- Medication reminders
|
|
- Dosage tracking
|
|
- Drug interaction checks
|
|
- Refill reminders
|
|
|
|
### Phase 3.3: Lab Results Integration
|
|
- Lab result upload
|
|
- QR code parsing
|
|
- Result visualization
|
|
- Trend analysis
|
|
|
|
---
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
normogen/
|
|
├── backend/ # Rust backend
|
|
│ ├── src/
|
|
│ │ ├── auth/ # JWT authentication
|
|
│ │ ├── handlers/ # API endpoints
|
|
│ │ ├── middleware/ # Auth middleware
|
|
│ │ ├── models/ # Data models
|
|
│ │ ├── config/ # Configuration
|
|
│ │ ├── db/ # MongoDB connection
|
|
│ │ └── main.rs # Application entry
|
|
│ ├── docker/ # Docker configuration
|
|
│ ├── tests/ # Integration tests
|
|
│ ├── Cargo.toml # Dependencies
|
|
│ ├── PHASE-2.4-SPEC.md # Current phase spec
|
|
│ ├── quick-test.sh # Quick API test script
|
|
│ └── docker-compose.dev.yml
|
|
├── web/ # Web frontend (pending)
|
|
├── mobile/ # Mobile apps (pending)
|
|
├── shared/ # Shared code/types
|
|
└── thoughts/ # Development documentation
|
|
├── STATUS.md # This file
|
|
├── CONFIG.md # Configuration guide
|
|
├── QUICKSTART.md # Quick start guide
|
|
└── research/ # Research documents
|
|
```
|
|
|
|
---
|
|
|
|
## Contributors
|
|
|
|
- **@alvaro** - Backend development
|
|
|
|
---
|
|
|
|
**Repository**: ssh://gitea.soliverez.com.ar/alvaro/normogen.git
|
|
**License**: Open Source (TBD)
|