DEV Community

Cover image for Passion Journal AI - Weekend Challenge
aarthirs
aarthirs

Posted on

Passion Journal AI - Weekend Challenge

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)