Vanessa's Concierge is a serene, low-stress, and beautifully organized Single Page Application (SPA) designed to help Vanessa manage her busy schedule as a caregiver. The application features a peaceful pastel-themed user interface (the Serene Aura theme) and integrates a voice-activated client-side AI Care Assistant powered by the Gemini API, alongside direct Google APIs and Firebase integrations.
-
AI Care Assistant ("Care Assistant")
- A floating, bottom-docked conversational AI assistant powered by
gemini-2.5-flash. - Supports text input and hands-free voice dictation via the HTML5 Web Speech API (
SpeechRecognition), featuring a 3.5-second silence auto-submit. - Handles natural language requests to manage checklists, schedule calendar events, log journal entries, record expenses, and compile reports.
- Fallback offline mock AI parser enables full demonstration of features when no API key is active.
- A floating, bottom-docked conversational AI assistant powered by
-
Schedule & Task Management
- Merges local Markdown-stored events and checklists with live Google Calendar and Google Tasks accounts.
- Synchronizes completion states bidirectionally.
-
Daily Routine Checklists
- Custom, weekday-specific routines (e.g., hygiene care, feeding pets, giving medications) that reset automatically.
-
Care Journal & Notes
- Daily logs recording client names, start/end times, mileage, and custom rich-text notes.
- Automatically computes Medicaid/DODD billing units (1 unit per 15 minutes worked).
-
Expense Tracker
- Logs business expenses, auto-categorizes standard vendors (ALDI, Walmart, McDonald's, CVS, etc.), and tracks payment methods.
- Displays real-time calculations for weekly and monthly expenditures.
-
Billing Report Generator
- Generates and compiles detailed billing summaries for selected date ranges.
- Exports reports as CSV downloads or prints them as print-ready PDF documents with provider/guardian signature lines.
- Stores report summaries in a historical archive.
- Frontend: Vanilla HTML5, Vanilla JavaScript (ES6+), Vanilla CSS (Custom properties, grid, flexbox, keyframe animations).
- Icons: Lucide Icons.
- Data Access & Storage: Unified storage wrapper (
file-system.js) targeting:- Firebase Firestore: Real-time cloud sync when a user is authenticated.
- Local Storage: Fallback guest mode database.
- Python Static Server API: Local file-system persistence (saves data as JSON/Markdown files in the
/datadirectory).
- APIs:
- Gemini API (
generativelanguage.googleapis.com) for function-calling. - Google Identity Services & Google REST API (Calendar & Tasks).
- Firebase Authentication & Firestore SDK.
- Gemini API (
No modern Javascript build tools or bundlers are required. The SPA runs entirely in the browser.
- Python 3.x installed on your computer.
- Clone this repository to your local machine.
- Navigate into the project folder.
- Launch the Python local development server:
- On Windows: Double-click LaunchPythonWebServer.bat or run
python server.pyin your terminal. - On macOS/Linux: Run
python3 server.pyin your terminal.
- On Windows: Double-click LaunchPythonWebServer.bat or run
- Open your web browser and go to:
http://localhost:8000
Note: The local Python server runs on port 8000. It hosts the static assets and provides file-system APIs to save/delete files inside the /data directory during local development.
To enable cloud features, go to the Settings tab (gear icon in the sidebar nav):
- Enter your Gemini API Key in the Gemini AI Developer Key field.
- Click Save Gemini Key.
- If no key is configured, the Care Assistant runs in Mock/Offline Demo Mode, responding with preset patterns.
- Follow the Google OAuth 2.0 Configuration Guide to set up a Google Cloud Console project.
- Configure your OAuth Client ID in the settings field and click Save Google Client ID.
- Click the Connect to Google button to authorize your account.
- Set up a project in the Firebase Console.
- Enable Email/Password authentication and Cloud Firestore.
- Copy your Web App config JSON into the Firebase Configuration JSON field and click Save Config.
- Log in using your email and password in the settings form to enable cloud sync.
The project is pre-configured for deployment with Firebase Hosting.
- Make sure you have the Firebase CLI installed:
npm install -g firebase-tools
- Log in and initialize hosting:
firebase login firebase init hosting
- Deploy the application:
firebase deploy
Refer to firebase.json for virtual route rewrite configurations.