Lexora: Mobile Offline Vocabulary Learning App
Comprehensive Product Requirements Document (PRD) and Technical Requirements Document (TRD) for a privacy-first, 100% offline Android flashcard & quiz mobile application. Designed for bite-sized daily vocabulary expansion without account requirements or cloud dependencies.
Product Vision & Objectives
"Every word opens a world. Explore. Remember. Speak with confidence."
100% Offline Utility
Operates entirely on-device without internet permissions, API keys, or cloud servers.
Zero Account Friction
No signups, login forms, or personal data collection. Instant access upon launching.
Structured Flashcards
40 curated vocabulary terms divided into 5 practical daily contextual chapters.
Curriculum & Chapter Modules
Lexora organizes 40 high-utility English vocabulary words across 5 thematic categories (8 words per chapter).
Essential words for daily conversation, expressing ideas, and daily human interactions.
Academic language for research, essays, problem-solving, and scientific analysis.
Vocabulary for navigation, tourism, directions, and cross-cultural exploration.
Professional terminology for workplace collaboration, strategy, and business productivity.
Descriptors for emotions, mental states, self-awareness, and psychological reflection.
Functional Feature Specifications
| Feature ID | Module Name | User Story & Behavioral Scope | Acceptance Criteria |
|---|---|---|---|
| FR-01 | Flashcard Studio | As a learner, I want to view clear flashcard terms with definitions and example sentences so I can understand proper context. | Displays word term, category tag, definition, and contextual sentence with Previous/Next card navigation. |
| FR-02 | Native Speech TTS | As a learner, I want to listen to correct English pronunciation by tapping "Listen". | Triggers Android Native TextToSpeech engine with clear US/UK English audio output. |
| FR-03 | Saved Word Favorites | As a user, I want to bookmark difficult words so I can review them later in my "Saved" collection. | Toggling "Save word" persists the item ID into TinyDB and updates the Saved list in real time. |
| FR-04 | Mastery & Gamification | As a learner, I want to earn 10 XP whenever I mark a word as learned or complete a quiz challenge. | XP increments by 10 per word. Total learned counter updates from 0/40 up to 40/40. |
| FR-05 | Fail-Safe Data Reset | As a user, I want to reset my entire learning history securely if I wish to restart the curriculum. | Requires double-tap on "Reset all learning progress" to clear TinyDB tags and reset XP to 0. |
MIT App Inventor System Architecture
UI & Layout Components
- Screen1 (VerticalScrollArrangement)
- CardView Containers (Rounded Corners)
- HorizontalArrangement Nav Buttons
- Custom Labels & Font Scaling
Event-Driven Blocks
- TextToSpeech Component (Native Synthesis)
- Notifier Dialog Component
- Lists & Index Iterators
- State Machine Controller
TinyDB Storage Key-Value
- Tag: "Lexora_LearnedWords"
- Tag: "Lexora_SavedWords"
- Tag: "Lexora_TotalXP"
- Tag: "Lexora_QuizScores"
Performance Metrics & Quality Assurance Matrix
Non-Functional Requirements (NFR)
QA Test Automation Cases
TinyDB Data Models & State Objects
1. Lexora Core Vocabulary Object (Dictionary List)
{
"id": "eng_01",
"chapter": "Everyday English",
"term": "Curious",
"definition": "Eager to learn or know something.",
"sentence": "She was curious about how the camera worked.",
"audioPronunciation": "KYOO-ree-uhs"
}
2. Local State Storage Object (TinyDB Tags)
{
"Lexora_TotalXP": 140,
"Lexora_LearnedWords": ["eng_01", "sch_02", "trv_01"],
"Lexora_SavedWords": ["eng_01", "car_04"],
"Lexora_QuizScores": {
"Everyday English": 8,
"School & Study": 5,
"Travel & Places": 0,
"Career & Work": 0,
"Feelings & Mind": 0
}
}
Android Mobile App Simulator
Experience the exact UI, audio TTS, flashcards, bookmarks, and quiz logic of Lexora.