This is a submission for Weekend Challenge: Passion Edition
What I Built
Passion Journal AI is an AI-powered journaling application that helps users reflect on what they're passionate about.
Instead of simply storing journal entries, the application analyzes each reflection using Google Gemini AI to identify:
- Primary Passion
- Mood
- Passion Score
- AI Reflection
- Personalized Goal
It also tracks progress through a modern analytics dashboard with:
- Weekly trend charts
- Daily streaks
- Previous journal history
- Progress statistics
The idea came from the challenge theme "Passion."
Passion isn't only about sports or hobbiesโit can also be about learning, building, reading, coding, exercising, or anything that motivates us to improve every day.
I wanted to build an application that encourages users to reflect on those passions instead of letting them fade into everyday routines.
Demo
๐ Live Application URL : Passion_Journal_AI
Code
GitHub Repository : github
How I Built It
I built the project as a complete full-stack application.
Frontend
- React
- Vite
- Tailwind CSS
- Context API
- Custom Hooks
- Recharts
- Axios
The dashboard was designed with reusable components to keep the UI modular and maintainable.
Backend
The backend uses:
- Node.js
- Express.js
The server exposes an API that receives journal entries and forwards them to Google Gemini AI.
AI Integration
Google Gemini analyzes every journal and returns structured JSON containing:
- Passion
- Mood
- Passion Score
- Reflection
- Goal
To make the application more reliable, I also implemented a rule-based fallback engine. If the AI service is unavailable or returns invalid data, the application still generates meaningful insights using keyword analysis.
Architecture Decisions
Some design decisions I focused on:
- Context API for centralized state management
- Reusable service layer for API communication
- Component-based UI architecture
- Local Storage persistence
- Validation before AI requests
- Responsive dashboard layout
- Clean separation between frontend and backend
Challenges
One interesting challenge was ensuring that AI responses were always usable.
Large Language Models don't always return perfectly formatted JSON, so I added:
- Response validation
- JSON cleanup
- Score normalization
- Fallback rule engine
This made the application much more resilient.
Another challenge was designing an interface that presents AI insights without overwhelming the user. I iterated on the layout to balance journaling, analytics, and reflection in a clean dashboard.
What I Learned
This project helped me gain hands-on experience with:
- Google Gemini API
- Prompt engineering
- AI response validation
- React Context API
- Dashboard architecture
- Building production-style full-stack applications
More importantly, it reinforced how AI can support personal growthโnot by replacing reflection, but by making it more meaningful.
Prize Categories
๐ Best Use of Google AI
Google Gemini powers the core experience of Passion Journal AI by analyzing journal entries and generating structured insights, reflections, and goals. The application also includes validation and a fallback analysis engine to ensure a reliable user experience.
Thank you to the DEV team for organizing this challenge. It was a great opportunity to combine AI, full-stack development, and a meaningful theme into one project.
Top comments (0)