Submission for the Accelerate AI with Cloud Run APAC Ideathon 2026
Private, intuitive, and insightful reflections and journal entries have proven to be the most useful ways of journaling and reflecting. As part of the Accelerate AI with Cloud Run APAC Ideathon, I have developed a journaling application, Personal Gemini Journal, a full-stack conversational artificial intelligence journaling application that enables real-time voice inputs, mood analytics, and external automation webhooks through the Google Cloud serverless platform.
System Architecture & Google Cloud Integration
The application combines serverless scale with security-first architecture:
Google Cloud Run: A perfect place to host a stateless, container-based application which is autoscaling from zero.
Gemini API (via Google AI Studio): It is an excellent tool for processing conversations that require multiple rounds of dialogue. It also gives automated reflection summary, dynamic mood tag, and sentiment trajectory calculation. Resilient multi-model failover is also included among the capabilities.
Firebase Authentication: Through Google OAuth SSO, Firebase authentication is the one securing all user identities and ensuring that every journaling session refers to an authenticated UID user only.
Cloud Firestore: This feature is designed to give each user an isolated database. It uses very strict security rules for a path like (/users/{userId}/journals/{document=**}). So data leaks from tenants to tenants are blocked at the database level.
Google Cloud Secret Manager: A place where server-side runtime secrets and keys are stored. These are kept outside the client bundles so their exposure risk is minimised.
Key Features & Enhancements
Per-User Data Isolation: Database-level features ensure complete user privacy without any interference.
Voice-to-Text Dictation Mode: Built-in dictation mode with the Web Speech API in the browser, providing speech-to-text functionality.
Mood Analytics & Sentiment Arc Tracker: Emotional tag extraction and mood trajectory plotting between history entries in the Archive view are done automatically.
External Webhook Notifications: Entry summary, mood tag, and time in the form of JSON payloads are dispatched asynchronously to selected Discord/Slack endpoints or HTTP receivers without affecting user operations.
Application Walkthrough
1. Conversational Journaling & Voice Input
2. Automated AI Summary & Mood Analytics
Security Architecture & Firestore Rules
To enforce strict security and user privacy, Cloud Firestore access is restricted exclusively to authenticated owners:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}/journals/{document=**} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
Note: Webhook notification triggers execute in non-blocking try/catch wrappers to ensure third-party network failures never interrupt journaling.
Try the Project
Live Prototype: https://geminijournalnirvik2026.ai.studio
GitHub Repository: https://github.com/Nirvik-49/personal-gemini-journal


Top comments (0)