← Back to Projects

AI-POWERED APPLICATION

MindLog

An AI-powered journaling application that helps users reflect on their daily experiences and generate personalized insights from journal entries.

AILLM APIFlutterSupabase
CLICK TO ENLARGE
01

Project Overview

MindLog is an AI-powered mobile journaling application designed to help users reflect on their everyday experiences and develop a deeper understanding of their thoughts, emotions, and behaviors. The project began with the observation that traditional journaling applications often focus primarily on recording experiences, while users may struggle to maintain consistent journaling habits or turn fragmented thoughts into meaningful reflection.

MindLog addresses this challenge by combining multimodal journaling with AI-assisted content generation. Users can record their experiences through text or voice, add images, tags, and mood information, and then generate a structured diary entry with a title, daily summary, key moments, and reflection. Users can review and edit the generated content before saving it, maintaining control over the final result.

Beyond individual diary entries, MindLog provides weekly and monthly reflection features that analyze historical entries to identify emotional patterns, important experiences, recurring topics, and personalized insights. This allows the application to move beyond simple diary storage toward a reflection companion that helps users recognize patterns and gain meaningful insights from their experiences over time.

02

Problem

Inconsistent Journaling

Users often struggle to maintain a consistent journaling habit due to the effort required to record daily experiences.

Unstructured Thoughts

Raw journal entries can remain fragmented, making it difficult to turn everyday experiences into meaningful reflection.

Limited Long-Term Insight

Users have difficulty identifying recurring emotions, behaviors, and patterns across their journal history.

Limited Personalization

Traditional journaling tools mainly store entries without providing contextual feedback based on the user's own experiences.

03

Solution

MindLog reduces the friction of journaling by supporting multiple ways to capture experiences, including text, voice, images, tags, and mood. This allows users to record their thoughts naturally without being limited to a single input method.

The application uses AI to transform users' raw thoughts and experiences into structured diary entries, including summaries, key moments, and reflections. Users can review and edit the generated content before saving it, keeping control over what becomes part of their journal.

Beyond individual entries, MindLog connects users' journal history with AI-powered weekly and monthly reflections. By analyzing experiences over time, the system helps users recognize recurring emotions, topics, and behavioral patterns, turning journaling from simple record-keeping into a continuous reflection process.

ARCH

System Architecture

MindLog uses a layered Flutter architecture that separates the UI, business logic, and data access. Supabase provides authentication, database, real-time services, and storage, while Edge Functions connect the application to the OpenAI API for AI-powered journal analysis and personalized insights.

04

Key Features

VIEW

FEATURE

AI-Assisted Diary Generation

Users can turn their thoughts and daily experiences into structured diary entries with the help of AI. The system helps organize unstructured input while keeping the user's original experience at the center of the entry.

VIEW

FEATURE

Multi-Modal Diary Creation

Users can record their experiences through text, voice, images, tags, and mood. This gives users multiple ways to capture different aspects of their day instead of relying on text alone.

VIEW

FEATURE

Personalized AI Preferences

Users can customize how AI interacts with their journal by selecting preferences such as tone, writing style, focus areas, and insight level. These preferences are used to make AI-generated content more aligned with each user's needs.

VIEW

FEATURE

Weekly & Monthly Insights

The system analyzes journal history to generate weekly and monthly reflections, highlighting emotional patterns, recurring themes, and meaningful changes over time. These insights help users better understand their experiences beyond individual diary entries.

VIEW

FEATURE

Timeline & Entry History

Users can browse their diary entries through a chronological timeline and revisit previous experiences. The history view provides a structured way to search, review, and reflect on their personal journey over time.

Offline Drafting & Synchronization

Diary drafts can be created and saved locally even when the user is temporarily offline. Once connectivity is available, the application synchronizes local data with the cloud while keeping track of draft and synchronization states.

05

Technical Implementation

Layered Flutter Architecture

The application is structured into presentation, domain, and repository layers, separating UI components, business logic, and data access. This modular structure keeps responsibilities clear and makes the application easier to maintain and extend.

Local Storage & Offline Support

SQLite is used to store diary drafts locally, allowing users to continue writing without an active network connection. Local data is tracked through defined states such as draft, generated, and synced before being synchronized with the cloud.

Supabase Backend Integration

Supabase provides the cloud backend for authentication, PostgreSQL database access, file storage, and server-side services. The repository layer communicates with these services through defined interfaces rather than coupling the UI directly to backend operations.

AI Processing with Edge Functions

AI-related processing is handled through Supabase Edge Functions, which act as the server-side layer between the application and the OpenAI API. This keeps API credentials and AI processing logic outside the client application.

Structured AI Generation

The AI pipeline uses structured prompts to transform user input into consistent diary content and reflection insights. The system supports AI-assisted diary generation as well as weekly and monthly insight generation based on accumulated journal data.

Cloud Synchronization & Realtime Updates

Local and cloud data are synchronized through explicit data states and synchronization logic. Supabase Realtime allows updated diary and AI-generated results to be pushed back to the application, keeping the interface synchronized with the latest backend state.

06

Challenges & Solutions

Challenge

Maintaining Consistent AI Output

Solution

Used structured prompt design and defined output requirements to make AI-generated diary content more consistent and suitable for reliable display and further processing.

Challenge

Providing Useful Historical Context

Solution

Rather than sending the user's entire journal history to the AI, the system uses aggregated weekly and monthly insights to provide meaningful long-term reflection while reducing unnecessary context and processing overhead.

Challenge

Offline Data & Cloud Synchronization

Solution

Implemented local SQLite storage for offline drafts and introduced explicit data states such as draft, generated, and synced to manage transitions between local and cloud data more reliably.

Challenge

AI Usage & Cost Control

Solution

Introduced AI regeneration controls and structured the insight-generation workflow to limit unnecessary AI calls while still giving users flexibility to regenerate content when needed.

Challenge

Protecting Personal Journal Data

Solution

Separated user data through authenticated access and backend-level data controls, ensuring that personal journal content is handled within the application's authorized user context.

Challenge

Balancing Usability with System Complexity

Solution

Separated the presentation, data, and backend layers so that complex synchronization and AI processing remain behind the application interface, allowing users to interact with a simpler journaling experience.

07

Technology Stack

MOBILE

Flutter

Dart

BACKEND

Supabase

Edge Functions

Authentication

Realtime

DATABASE

PostgreSQL

SQLite

AI

OpenAI API

LLM Integration

Prompt Engineering

08

Future Improvements

Improve long-term personalization by allowing the AI to build a more comprehensive understanding of the user's journaling patterns and preferences over time.

Enhance AI reflection quality by providing richer historical context while balancing context size, processing time, and AI usage costs.

Expand multimodal reflection by incorporating more meaningful relationships between journal text, images, mood, and other user-provided context.

Improve synchronization reliability by introducing more robust conflict handling and recovery mechanisms for cases where local and cloud data become inconsistent.

Explore more advanced insight visualizations to help users understand changes in emotions, recurring themes, and personal patterns over longer periods.