π©Έπ¦πΌ Bloodboy
July 9, 2026 Β· View on GitHub
Track and visualize your blood test results over time with AI-powered data extraction
π Try it live at bloodboy.report π
Upload your reports, extract biomarkers, and track changes over time β right in your browser.
π Core Values
- Open Source - Free and open source software under AGPL-3.0
- Privacy First - Everything stays on your device
- No Subscriptions - Free for personal use, forever
- You Own Your Data - Export and backup anytime
- Any Biomarkers - Supports extracting and tracking any biomarkers with any units
β¨ Features
- PDF Upload - Drag & drop blood test PDFs for automatic data extraction
- Built-in PDF Viewer - View uploaded documents directly in the app
- File Organization - Organize your files and keep them in one place near to extracted values
- AI-Powered - OpenAI integration for intelligent biomarker extraction
- Unit Converter - Automatic unit conversion
- Data Visualization - Interactive charts and trend analysis
- Anomaly Detection - Filter biomarkers with strong fluctuations between tests
- Local Storage - All data stored locally using IndexedDB
- Google Drive Backups - Optional browser-based two-way backup sync with a latest file and dated history
- Professional Tables - Sorting, filtering, and inline editing with AG-Grid
- Saved Filters - Save and quickly apply custom filter combinations
- Modern UI - Clean interface built with AntDesign and Tailwind CSS
- Import/Export - Backup and restore your data anytime
πΌοΈ Screenshots
Upload
Dashboard
Charts
π Getting Started
Prerequisites
- Node.js 18+ and npm
Installation
npm install
Development
npm run dev
Build
npm run build
Scripts
| Command | Description |
|---|---|
npm run dev | Start development server |
npm run build | Build for production |
npm run preview | Preview production build |
npm run typecheck | Run TypeScript type checking |
npm run lint | Run ESLint |
npm run lint:fix | Fix ESLint issues |
π οΈ Tech Stack
- React 19 - UI library
- TypeScript 5 - Type safety
- Vite 6 - Build tool
- Tailwind CSS 3 - Styling
- AntDesign 5 - UI components
- AG-Grid 32 - Data tables
- Dexie - IndexedDB wrapper
- OpenAI - PDF parsing
π Project Structure
src/
βββ components/ # Reusable UI components
βββ pages/ # Page components
βββ db/ # Database models and services
β βββ models/ # Data models
β βββ services/ # Dexie instance
β βββ hooks/ # Database hooks
βββ constants/ # App constants
βββ types/ # TypeScript types
βββ utils/ # Helper functions
βββ openai/ # OpenAI integration
βββ App.tsx # Root component
π§ Configuration
See .env.example for optional environment variables. The app works fully offline without any configuration.
To enable Google Drive backups, create a Google OAuth web client and set VITE_PUBLIC_GOOGLE_CLIENT_ID.
Google Drive sync is two-way: newer Drive backups are restored into the browser, and newer local data is uploaded back to Drive.
Backups are stored in Google Drive as:
Bloodboy Backups/
βββ latest/
β βββ bloodboy_db_backup_latest.json
βββ history/
β βββ YYYY/
β βββ MM/
β βββ bloodboy_db_backup_<timestamp>.json
βββ bloodboy_backup_manifest.json
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request or open an issue.
π§ Contact
For questions or feedback, reach out at yashugaev@gmail.com
π License
Licensed under AGPL-3.0 - free and open source software.
Made with β€οΈ and π©Έ for better health tracking