Skip to content

Tugamer89/pill-minder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💊 PillMinder - Gestione Terapie Intelligente

WakaTime

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.


✨ Funzionalità Principali

🔔 Notifiche Intelligenti & Snooze

  • 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.

📱 Esperienza Utente Moderna

  • 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.

🛡️ Sicurezza & Account

  • 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.

🛠️ Tecnologie Utilizzate

Backend

  • 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.

Frontend

  • 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.

🚀 Installazione e Avvio

Prerequisiti

  • Python 3.10 o superiore
  • PostgreSQL (opzionale, default SQLite per sviluppo locale)

1. Clona il repository

git clone [https://github.com/tuo-username/pill-minder.git](https://github.com/tuo-username/pill-minder.git)
cd pill-minder

2. Crea e attiva l'ambiente virtuale

python -m venv venv
source venv/bin/activate  # Su Windows: venv\Scripts\activate

3. Installa le dipendenze

pip install -r requirements.txt

4. Configurazione Variabili d'Ambiente (.env)

Crea 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=True

5. Avvia l'applicazione

uvicorn main:app --reload

L'app sarà disponibile su http://127.0.0.1:8000.


📂 Struttura del Progetto

.
├── 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

📜 Licenza

Distribuito sotto licenza MIT. Vedi LICENSE per maggiori informazioni.


Realizzato con ❤️ e tanta caffeina.

About

Resources

License

Stars

Watchers

Forks

Contributors