A gamified diary application built with Flutter that analyzes your daily emotions using AI and rewards you with Pokemon cards!
Record your day, understand your feelings, and complete your Pokedex.
Click the image above to watch the demo on YouTube.
- 📝 Smart Diary: Write your daily thoughts in English or Korean.
- 🧠 AI Sentiment Analysis: The app uses the Hugging Face API (RoBERTa model) to analyze your emotions (Joy, Sadness, Anger, Calm).
- 🎁 Pokemon Gacha System: Get rewarded with a Pokemon draft based on your emotion!
- Happy? You might attract Electric, Flying, or Fairy types!
- Sad? Water, Ghost, or Ice types might appear.
- Angry? Fire, Fighting, or Dragon types are drawn to your energy.
- Calm? Grass, Normal, or Bug types will appear.
- 📖 Pokedex: Collect all 151 Gen 1 Pokemon. View detailed stats and retro sprites.
- 🆔 Trainer Card: Customize your profile with badges and personal stats.
- 🎨 Retro Aesthetic: Pixel art style with fluid modern animations using Lottie.
You can either install the app directly using the pre-built APK or build it from the source code.
If you want to try the app immediately:
- Go to the Releases page.
- Download
PokeDiary_v1.0.0.apk. - Open the file on your Android device and install. (Note: You may need to allow installation from unknown sources in your device settings.)
If you want to run the project on your local machine:
- Flutter SDK installed.
- An IDE (VS Code or Android Studio).
-
Clone the repository
git clone https://github.com/your-username/pokemon_diary.git cd pokemon_diary -
Install dependencies
flutter pub get
-
🔑 API Key Configuration (Crucial Step) To use the AI Sentiment Analysis features, you need a Hugging Face Access Token.
- Go to Hugging Face Settings -> Tokens.
- Create a new Access Token (Type: Read).
- Create a new file named
api_keys.dartinside thelib/directory. - Add the following code to
lib/api_keys.dart:
// lib/api_keys.dart const String huggingFaceAPIKey = "YOUR_HUGGING_FACE_ACCESS_TOKEN_HERE";
-
Run the App
flutter run
- Write: Go to the "Draft" tab and write about your day.
- Analyze: Submit your entry. The AI will analyze your sentiment.
- Collect: Watch the Pokeball animation and reveal your new Pokemon partner!
- View: Check your collection in the "Pokedex" tab or view past entries in the "Diary" tab.
lib/
├── main.dart # App Entry Point & Provider Setup
├── home_screen.dart # Main Navigation Controller
├── api_keys.dart # (You must create this) API Keys
├── models/ # Data Models (Pokemon, Diary, Badge)
├── providers/ # State Management (DiaryProvider, PokedexProvider, etc.)
├── screens/ # UI Screens (Diary, Pokedex, Popups)
├── services/ # Logic (API, Database, Sentiment Analysis)
└── utils/ # Helpers (Date formatting, UI Themes)
To build the APK for Android:
flutter build apk --releaseThe output file will be located at:
build/app/outputs/flutter-apk/app-release.apk
- Framework: Flutter (Dart)
- State Management: Provider
- Local Database: sqflite
- AI Model: RoBERTa (via Hugging Face API)
- Animations: Lottie
- Data Source: PokeAPI (Sprites & Data)
- Push Notifications: Daily reminders at 9 PM to encourage diary writing.
- Advanced Analytics: Weekly emotional trends and Pokémon type distribution charts.
This project is for educational purposes (MadCamp).
- PokeAPI for the comprehensive Pokemon data and sprites.
- Hugging Face for the emotion classification models.
- Galmuri for the beautiful pixel fonts.
