Skip to content

Latest commit

 

History

321 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🇰🇷 한국어

MindLog

MindLog

AI-powered emotional diary that understands and comforts you

CI Google Play Platform Privacy AI License


Features

  • 🧠 AI Emotion Analysis — Real-time emotion detection powered by Groq (gpt-oss-120b)
  • 💬 Empathetic AI Characters — Personalized comfort messages from AI companions
  • 🌱 Emotion Calendar — Visualize your emotional journey as growing plants
  • 📊 Statistics & Trends — Emotion charts, keyword analysis, and weekly insights
  • 📸 Image Analysis — Detect emotions in photos via Vision API
  • 🔔 Smart Notifications — Morning encouragement & evening care across 2 channels
  • 🔒 Privacy-First — No account, no cloud sync. Entries live on your device and go out only for the AI analysis itself.

Recent Updates (v1.4.64)

  • ✅ 1,814 tests passing — the test suite is roughly the size of the production code
  • 📝 Diary auto-save — in-progress entries and attached photos now survive backgrounding, back-press, and process death; restored via a banner, kept for 7 days
  • ☎️ Crisis hotline unified to 109 — Korea merged its suicide-prevention line in Jan 2024; all 6 call sites now match
  • 🔐 Removed unauthenticated admin endpoints — 3 public Cloud Functions HTTP handlers deleted (they could push to every topic subscriber)
  • 🖼️ Groq Vision rate-limit handling — one downscaled image per request, with text-only fallback when the token budget is exceeded
Previous Updates (v1.4.60 – v1.4.63)
  • 🔒 Privacy policy rewritten — replaced a generic template with the app's actual data flow (Groq, Firebase, on-device storage)
  • 🐛 FCM {name} placeholder leak fixed — traced past the client to the server-side message templates, where the real source was
  • 🧪 Non-vacuous regression tests — new tests are now verified to fail against the pre-fix code before being accepted
  • ♻️ Health Check refactor — 57 files restructured with no user-facing change
  • 📏 Repository-wide format cleanup — 53 files realigned to the Dart 3.7+ tall-style formatter

Screenshots

Diary List Diary Write Emotion Calendar AI Character


Privacy

Your mind belongs to you.

Item Policy
Storage Local SQLite on your device — no account, no cloud sync
AI Analysis Your entry text, plus one attached photo, is sent to the Groq API (US) to be analyzed. No name, email, or account is attached.
Analytics Firebase receives the emotion score, energy level, and the first 50 characters of the action suggestion — never the entry itself.
Deletion Instant full deletion from Settings

See Privacy Policy for details.


Tech Stack

Category Technology Version
Framework Flutter / Dart 3.38.x / ^3.10.1
State Riverpod 2.6.1
Database SQLite (sqflite) 2.3.3
Firebase Analytics, Crashlytics, FCM 3.8.0+
Routing go_router 17.0.1
AI (text) Groq API openai/gpt-oss-120b
AI (vision) Groq API qwen/qwen3.6-27b
Charts fl_chart 0.68.0

Architecture

┌──────────────────────────────────────────┐
│              Presentation                │
│     Providers (Riverpod) + Widgets       │
├────────────────────┬─────────────────────┤
│                    ▼                     │
│               Domain                     │
│    Entities, UseCases, Repo Interfaces   │
├────────────────────┬─────────────────────┤
│                    ▲                     │
│                Data                      │
│   Repo Impl, DataSources, DTOs          │
└──────────────────────────────────────────┘

Layer rules: presentation → domain ← data
(domain has zero external dependencies)

Getting Started

Prerequisites

Setup

# Clone
git clone https://github.com/kaywalker91/MindLog.git
cd MindLog

# Install dependencies
flutter pub get

# Generate code (freezed, json_serializable, etc.)
dart run build_runner build --delete-conflicting-outputs

# Run
flutter run --dart-define=GROQ_API_KEY=your_key

Build

# Release App Bundle
flutter build appbundle --release --dart-define=GROQ_API_KEY=your_key

# Release APK
flutter build apk --release --dart-define=GROQ_API_KEY=your_key

Project Structure

lib/
├── core/           # Config, services, theme, constants, utilities
├── data/           # Repository implementations, DataSources, DTOs
├── domain/         # Pure Dart: entities, repository interfaces, use cases
├── presentation/   # Providers, Screens, Widgets
└── main.dart

AI-assisted development, written down

This project is built with AI coding assistants, and the working agreement for that is version-controlled rather than improvised per session. .claude/ holds the architecture and testing rules the assistant must follow, the automation commands used for recurring work, and the engineering notes written up after each non-obvious bug — including why a regression test that passes can still be worthless.


Testing

# Run all tests with coverage
./scripts/run.sh test

# Full quality gates (lint + format + test)
./scripts/run.sh quality

Coverage targets: unit ≥ 80%, widget ≥ 70%


Contributing

Bug reports, feature requests, and pull requests are welcome!

See CONTRIBUTING.md for guidelines.


Changelog

See CHANGELOG.md for full release notes.


License

MIT License — Copyright (c) 2024 kaywalker91

About

MindLog는 사용자의 일기를 분석하여 감정 상태를 파악하고, 위로의 메시지와 맞춤형 행동 지침을 제공하는 스마트 다이어리 앱입니다.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages