PillMinder è una Progressive Web App (PWA) moderna e intuitiva progettata per aiutarti a gestire le tue terapie farmacologiche quotidiane. Non dimenticare mai più una pillola grazie al sistema di notifiche intelligenti, snooze e tracciamento delle assunzioni.
- Sistema di Alert Progressivo: Ricevi notifiche subito, dopo 1 ora, dopo 30 minuti e poi ogni 15 minuti finché non confermi l'assunzione.
- Snooze Flessibile: Metti in pausa i promemoria per 30 minuti se non puoi prendere la medicina subito. Il sistema ti ricorderà automaticamente allo scadere del tempo.
- Notifiche Push Web: Ricevi avvisi anche a browser chiuso (su Android/Desktop supportati) grazie all'integrazione Service Worker + VAPID.
- PWA Installabile: Installa l'app sul tuo smartphone o desktop per un'esperienza nativa.
- Dark Mode Automatica: Si adatta alle preferenze del tuo sistema o può essere attivata manualmente.
- Design Responsivo: Interfaccia pulita e ottimizzata per qualsiasi dispositivo, realizzata con TailwindCSS.
- Autenticazione Sicura: Login e registrazione protetti con hashing delle password (Bcrypt).
- Verifica Email: Conferma dell'identità tramite link inviato via email (integrazione Brevo).
- Recupero Password: Procedura sicura per il reset della password dimenticata.
- Gestione Admin: Pannello di amministrazione per monitorare gli utenti iscritti e gestire il sistema.
- Python 3.10+
- FastAPI: Framework web asincrono ad alte prestazioni.
- SQLAlchemy: ORM per la gestione del database (PostgreSQL/SQLite).
- APScheduler: Gestione dei job in background per l'invio delle notifiche push.
- PyWebPush: Invio notifiche push standard VAPID.
- Sib-Api-V3-Sdk (Brevo): Invio email transazionali affidabili.
- Vue.js 3: Framework progressivo per un'interfaccia reattiva.
- TailwindCSS: Utility-first CSS framework per lo styling.
- Service Workers: Per supporto offline e gestione notifiche push in background.
- Jinja2: Templating server-side per le pagine base e le email.
- Python 3.10 o superiore
- PostgreSQL (opzionale, default SQLite per sviluppo locale)
git clone [https://github.com/tuo-username/pill-minder.git](https://github.com/tuo-username/pill-minder.git)
cd pill-minderpython -m venv venv
source venv/bin/activate # Su Windows: venv\Scripts\activatepip install -r requirements.txtCrea un file .env nella root del progetto copiando l'esempio sottostante e inserendo le tue chiavi:
# Database
DATABASE_URL="sqlite:///./pillminder.db" # O il tuo URL PostgreSQL
# Sicurezza (Genera chiavi casuali sicure)
SESSION_SECRET="tua_chiave_sessione_segreta"
CSRF_SECRET="tua_chiave_csrf_segreta"
# Notifiche Push (Genera chiavi VAPID online o via script)
VAPID_PRIVATE_KEY="tua_chiave_privata_vapid"
VAPID_PUBLIC_KEY="tua_chiave_pubblica_vapid"
VAPID_CLAIMS_EMAIL="mailto:admin@iltuosito.com"
# Email (Brevo/Sendinblue)
BREVO_API_KEY="tua_api_key_brevo"
BREVO_EMAIL_FROM_ADDRESS="noreply@pillminder.app"
BREVO_EMAIL_FROM_NAME="PillMinder"
# Admin
ADMIN_USERS="tuo_username_admin"
DEBUG=Trueuvicorn main:app --reloadL'app sarà disponibile su http://127.0.0.1:8000.
.
├── core/ # Configurazioni, sicurezza, auth
├── db/ # Modelli e connessione database
├── routes/ # Endpoint API e Pagine
├── services/ # Scheduler e logica notifiche
├── static/ # Asset statici (JS, CSS, Icone)
│ └── js/ # Frontend Vue.js
├── templates/ # Template HTML Jinja2
├── utils/ # Utility varie
├── main.py # Entry point FastAPI
└── requirements.txt # Dipendenze
Distribuito sotto licenza MIT. Vedi LICENSE per maggiori informazioni.
Realizzato con ❤️ e tanta caffeina.