
Project / 06
Nihonix Japanese
A mobile-first Japanese learning product that combines structured N5-N2 content, AI-generated study material, flashcards, quiz practice, streak tracking, and a modular NestJS backend.
Role
Full-stack / Mobile Developer
Timeline
Personal product
Status
Beta
Product Screens
Real
interface
A closer look at the actual screens I designed and built across the product experience.
01
Welcome intro
02
Learning onboarding
03
Home with streak progress
04
Topic-based lessons
05
Grammar study





Overview
What this project is
Nihonix is a Japanese learning app built around structured lessons, grammar, vocabulary, flashcards, and practice. The Flutter mobile app uses a feature-first clean architecture with Riverpod, GoRouter, Dio, Retrofit, Hive, secure token storage, localization, and TTS pronunciation. The NestJS backend manages auth, users, levels, topics, grammar patterns, vocabulary sets, flashcards, practice sessions, learning streaks, entity sync, Cloudinary uploads, and AI generation through Gemini/OpenRouter providers.
Target users
Self-learners studying Japanese from beginner to intermediate levels who want a mobile app for daily learning, flashcards, AI-generated practice, and progress consistency.
Goal
Create a practical language-learning product where learners can choose a level, follow topic-based lessons, generate study material with AI, practice with quizzes, review flashcards, and keep daily learning momentum.
Key Features
Main things it can do
Learning path
- Choose learning language and Japanese level during onboarding
- Browse lessons by topic and level
- Study vocabulary sets, grammar sub-topics, and grammar patterns
- Use localized UI content for Vietnamese, English, and Japanese
AI content generation
- Generate vocabulary sets and vocabulary items by topic
- Generate grammar patterns for selected grammar sub-topics
- Generate flashcard sets by level, difficulty, topic, count, and optional custom prompt
- Generate fill-in-the-blank and multiple-choice practice exercises
Practice and review
- Create flashcard folders, sets, and cards
- Study with flip-card interactions
- Play quiz sessions by topic and exercise type
- Submit answers and review quiz results
Progress and account
- Track learning streak, daily activity, and calendar progress
- Store user level and profile information
- Upload avatar through Cloudinary-backed API
- Handle login, register, refresh token, logout, forgot password, and reset-code flows
Technologies Used
Stack by layer
Mobile
FlutterDartRiverpod 3GoRouterDioRetrofitFreezedjson_serializable
Mobile UX
Hiveflutter_secure_storageeasy_localizationflutter_ttsflip_cardLottieSmartDialogimage_picker
Backend
NestJS 11TSTypeScriptTypeORMPostgreSQLJWTPassportSwaggerclass-validator
AI
Google GeminiOpenRouterAI provider abstractionJSON parserRetry and fallback handling
Services
CloudinaryMulterNodemailerDatabase migrationsSeed scriptsEntity sync with ETag