AI-powered journal that autonomously decides what to do based on your conversation. No buttons—just chat naturally.
🚀 Live Demo: https://reflectiq.r2k.dev
Talk to the AI like a friend. It automatically:
- Saves journal entries when you share daily experiences
- Creates goals when you mention deadlines
- Searches past entries using semantic meaning
- Tracks goal progress by analyzing your journal
- Schedules Google Calendar events from natural language
- Autonomous Journaling - Auto-detects and saves daily reflections
- Semantic Search - Find entries by meaning, not keywords (768-dim vectors)
- Smart Goal Tracking - AI monitors progress via journal analysis
- Team Collaboration - Create teams, share journal entries, and manage team goals
- Calendar Integration - Backend implemented; Frontend integration pending (Google Cloud Console setup)
- Real-time Chat - WebSocket with typing effects and auto-reconnect
- Multi-user Auth - Secure JWT-based authentication
Frontend: React 18, TypeScript, Vite, Tailwind CSS, WebSocket
Backend: Express.js, TypeScript, WebSocket (ws), Supabase PostgreSQL + pgvector
AI: IQ AI ADK v0.3.7, Google Gemini 2.5 Flash, text-embedding-004 (768-dim)
Auth: Supabase Auth, JWT tokens, Google OAuth 2.0
1. User Message
↓
2. WebSocket → Backend (JWT auth)
↓
3. AI Agent (Gemini 2.5 Flash)
- Analyzes user intent
- Selects appropriate tool(s)
↓
4. Tool Execution
- Save journal entry (with embedding generation)
- Search entries (cosine similarity on vectors)
- Create/track goals
- Add calendar events
↓
5. Response streams back (word-by-word typing effect)
10 Autonomous Tools:
- Journal:
saveEntry,fetchEntry,searchEntries,getSummary - Goals:
setGoal,listGoals,checkProgress,updateStatus - Team:
saveTeamEntry,searchTeamEntries,setTeamGoal,listTeamGoals - Calendar:
addEvent,listEvents(Backend only)
AI picks the right tool automatically—no commands needed.
- Create & Join Teams - Start a team or join with invite codes
- Team Journaling - Share journal entries with team members
- Team Goals - Set and track team-wide goals (lead-only)
- Real-time Team Chat - Collaborate with teammates via WebSocket
- Team Insights - Search and analyze team journal entries together
# 1. Install
git clone <repo-url>
cd ai-journal
npm install
# 2. Configure .env
GOOGLE_API_KEY=<gemini-key>
SUPABASE_URL=<supabase-url>
SUPABASE_ANON_KEY=<anon-key>
SUPABASE_SECRET_KEY=<service-key>
GOOGLE_CLIENT_ID=<oauth-client-id>
GOOGLE_CLIENT_SECRET=<oauth-secret>
GOOGLE_REDIRECT_URI=http://localhost:3000/calendar/callback
JWT_SECRET=<random-string>
# 3. Setup Supabase database (SQL in docs)
# 4. Enable Google APIs (Gemini + Calendar)
# 5. Run
npm run api # Backend: localhost:3000
cd src/frontend && npm run dev # Frontend: localhost:5173Journaling
You: Today I finished the auth system and deployed to production
AI: Great work! I've saved that to your journal.
Goals
You: I want to complete 15 DSA topics by December 31st
AI: Goal created: "Complete 15 DSA topics". You can check it in the Goals page.
Search
You: When did I work on the calendar feature?
AI: October 11th: "Built Google Calendar OAuth integration..."
Progress
You: How's my DSA goal going?
AI: You've mentioned it 4 times:
- Oct 10: Binary search practice
- Oct 12: Dynamic programming
...
Ritesh Kumar Karn - Backend & AI Services
LinkedIn • X • GitHub
Khushi Mishra - Frontend
LinkedIn • X • GitHub
MIT
