VitalSpan is a personal health tracking web app built with Laravel and Vue 3...
- User authentication (Laravel Breeze)
- Core vitals logging (BP, HR, Weight, Temp)
- Notes and context tagging
- History table with filtering and sorting
- CSV/XLSX/PDF export
- Security disclaimers
- Charting support via Chart.js
- Date range filtering on export
- Quick entry (keyboard-first form)
- Mobile responsive tweaks
- Daily/weekly average summaries
- Visual indicators for trends (up/down)
- Progressive Web App (PWA) for offline use
- User role support (e.g., caregiver, admin)
- Daily notifications/reminders (email or local)
- Sync to Apple Health/Google Fit (opt-in)
- Dockerized deployment + systemd service
⚙️ Deployment Instructions (VPS/Linux server)
- SSH into your server:
ssh user@your-vps-ip
2. Clone the repo:
git clone git@github.com:SuspiciousQueso/vitalspan.git /var/www/vitalspan
cd /var/www/vitalspan
3. Set permissions:
chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage bootstrap/cache
4. Install dependencies
composer install
npm install && npm run build
5. Configure .env and generate app key:
cp .env.example .env
php artisan key:generate
6. Setup DB and run migrations:
php artisan migrate
7. Configure Nginx/Apache to point to /public
(Or use Laravel Valet or a reverse proxy like Caddy.)
8. Enable HTTPS (Let’s Encrypt or self-signed)
9. Profit
### 📊 Charting Plans
You can include this in README or a separate `docs/tech-notes.md`:
```markdown
## 📊 Charting Plan
**Library:** Chart.js or ApexCharts
**Integration Style:** Blade partial or Inertia Vue component
**Charts:**
- Line graph for BP trends over time
- Sparkline for daily HR/weight
- Multi-chart dashboard view
**Data Source:** `/api/vitals?filter=type&range=30d`
**Future Enhancements:**
- Toggle between chart/table view
- Tooltips with note context
- Highlight abnormal values