Looks Like This Service Is On Hold
I will develop a clinic pwa, patient and appointment manager


About this gig
A lightweight, installable web app for multi-specialty clinics (e.g., Cardiology, Hematology, Orthopedics/Traumatology, Dentistry, Pediatrics, Nutrition, Gynecology, Dermatology, Internal Medicine). It streamlines patient intake, scheduling, clinical notes, and document handlingfully in the browser.
Key features
- Patient profiles: first/last name, ID, phone (WhatsApp), insurance, and required specialty.
- Smart scheduling: create appointments by specialty/specialist/date/time with real-time conflict detection to prevent double-booking per specialist; send confirmations via WhatsApp in one click.
- Clinical history by specialty: capture visit reasons, notes, and treatment plans. Includes a dedicated Dentistry module with an interactive odontogram and treatment tracking.
- Studies & attachments: upload PDFs and images tied to each patient (persisted locally via IndexedDB).
- Reporting: generate print-ready PDF summaries for appointments, history, and odontogram.
- Data portability: one-click JSON export/import, plus data deletion controls.
- Bilingual UI & themes: English/Spanish language switcher and pastel themes (Lavender and Blush)no dark blue backgrounds.
- PWA by design: install to desktop or
Get to know Estefanía I
- FromArgentina
- Member sinceAug 2025
Languages
English, Spanish
My Portfolio
FAQ
Where is my data stored?
All structured records (patients, appointments, history, odontogram) are in localStorage. File attachments (PDFs/images) are in IndexedDB. Everything stays on the device and browser profile you use.
Can multiple users share data automatically?
Not by default. There is **no backend**. To move data between devices, use **Export JSON** on one device and **Import JSON** on another. Attachments in IndexedDB are not included; keep originals or extend the app to export them.
How is double‑booking prevented?
When you save an appointment, the app checks if another appointment exists for the **same specialist, date and time**. If found, it blocks saving and shows a warning.
How do WhatsApp confirmations work?
The button opens `https://wa.me/<phone>` with a prefilled message. Use an international format (e.g., `54911...` for Argentina). Your browser must allow pop‑ups.
How do I add specialties or translate them?
Edit the `SPECIALTIES` map in `app.js` (ES/EN lists) and call `renderEspecialidades()` when the language changes. For full multilingual data, store a canonical code per specialty and map it to labels per language.
How do I generate PDF reports?
Open **Reports** → **Print / Export PDF**. Your browser’s print dialog appears; choose *Save as PDF*. You can customize the layout in the `btnGenerarPDF` section of `app.js`.
How do I deploy this online?
Upload the folder to any static host (Netlify, Vercel, S3+CloudFront, Nginx/Apache). Use **HTTPS** so the Service Worker works in production. Open the root URL to cache assets.
How do I reset or wipe all data?
Clear site data: - Chrome/Edge/Firefox: DevTools → Application/Storage → Clear site data. - Or **Settings → Cookies and site data** → remove data for your domain.
Can I add roles and login?
Yes, but it requires development (e.g., client‑side auth + a backend). Out of scope for the current front‑end‑only build.

