A modern, privacy-focused web application for analyzing blood test results, tracking personal health data, and providing ortho-molecular insights. Designed for accessibility, internationalization, and extensibility.
Live:
License:
Apache 2.0 License
Empower users to interpret blood test results, track health trends, and receive tailored recommendations—all while keeping their data secure and under their control. The app supports international users, advanced accessibility, and seamless integration with health data providers.
Contributions are welcome! Please:
- Fork the repo and create a feature branch
- Follow the code style in
.eslintrc.json
and.prettierrc
- Document major decisions in
lovable-memory-bank/decisionLog.md
- Submit a pull request with a clear description
All persistent decisions, design rationales, and product context are stored in the lovable-memory-bank
directory:
decisionLog.md
: Architectural, UI, and business decisionsproductContext.md
: Product vision and goalsprogress.md
: Milestones and progress trackingsystemPatterns.md
: Reusable system and code patternsactiveContext.md
: Current context for ongoing development
This system keeps the project transparent, auditable, and easy to onboard for new contributors.
- Vite: Lightning-fast build and dev server
- TypeScript: Type-safe codebase
- React: Component-based UI
- shadcn-ui: Accessible UI primitives
- Tailwind CSS: Utility-first styling
- Supabase: Backend-as-a-Service for auth & storage
- Lovable: AI-powered code collaboration
- Windsurf: AI pair programming
blood-test/
├── LICENSE
├── README.md
├── package.json
├── public/
│ └── ReferenceValues.md
├── src/
│ ├── App.tsx
│ ├── components/
│ ├── context/
│ ├── hooks/
│ ├── integrations/
│ ├── lib/
│ ├── locales/
│ ├── pages/
│ └── main.tsx
├── lovable-memory-bank/
│ ├── decisionLog.md
│ ├── productContext.md
│ ├── progress.md
│ ├── systemPatterns.md
│ └── activeContext.md
├── supabase/
│ └── ...
└── ...
File/Folder | Purpose & Description |
---|---|
README.md |
Main documentation for project purpose, setup, and architecture |
LICENSE |
Apache 2.0 license with third-party notices (Supabase, Lovable) |
package.json |
Project dependencies, scripts, and metadata |
public/ |
Static assets (e.g., ReferenceValues.md for blood marker ranges) |
src/ |
Main source code (see below for subfolders) |
src/App.tsx |
Root React component |
src/components/ |
UI components (forms, charts, dialogs, etc.) |
src/context/ |
App-wide React context providers (e.g., UserProfileContext.tsx ) |
src/hooks/ |
Custom React hooks |
src/integrations/ |
External service integrations (e.g., Supabase) |
src/lib/ |
Utility functions and shared logic |
src/locales/ |
Language translation files (e.g., en.ts ) |
src/pages/ |
Page-level React components |
src/main.tsx |
React app entry point |
lovable-memory-bank/ |
Persistent memory system (see below for files) |
lovable-memory-bank/decisionLog.md |
Major technical and product decisions |
lovable-memory-bank/productContext.md |
Product vision and goals |
lovable-memory-bank/progress.md |
Progress tracking and milestones |
lovable-memory-bank/systemPatterns.md |
Reusable patterns |
lovable-memory-bank/activeContext.md |
Development context |
supabase/ |
Supabase integration configuration |
If you want a more detailed description of any specific file or folder, just ask!
graph TD
User["User"]
UI["React UI"]
Contexts["UserProfileContext & LanguageContext"]
Locales["Multi-language Support"]
Supabase["Supabase (Auth & Storage)"]
Lovable["Lovable Memory Bank"]
AI["AI Tools (Windsurf, Lovable)"]
User --> UI
UI --> Contexts
UI --> Locales
UI --> Supabase
UI --> Lovable
Lovable --> AI
Supabase --> UI
- Via Lovable: Open project and prompt changes.
- Locally: Clone, install (
npm i
), and run (npm run dev
). - GitHub: Edit files and commit via the web UI or Codespaces.
- Deploy: Use Lovable's Share → Publish. See custom domain setup.
For questions or contributions, open an issue or PR. See the LICENSE for legal details and third-party notices.
- later:
- N8N for AI Agents
Simply open Lovable and click on Share -> Publish.