HelloMee is an AI-powered language learning game where players help an alien character learn Earth languages through vocabulary acquisition.
HelloMee is designed as a vocabulary learning game. Players interact with an alien character who is learning human language and culture. Through feeding text to the alien, players help it understand vocabulary and grammar. The game features a progression system where the alien levels up as it learns more words, and players can review learned vocabulary to reinforce their knowledge. The game also includes a postcard system that captures memorable moments from AI-generated content, creating a personalized learning journal.
Currently supported target languages:
- English
- German
- French
- Spanish
- Swedish
- Japanese
- Chinese
The game follows a structured progression system:
-
Setup Phase
-
Learning Loop
-
Progression
-
Completion
-
Explore More Languages
- Pick another target language and speak to the alien — a whole new journey awaits you in that language:
src/
├── assets/ # Static assets and text files
│ ├── system-prompt-level-1.txt # AI system prompt for level 1
│ ├── system-prompt-level-2.txt # AI system prompt for level 2
│ ├── system-prompt-level-3.txt # AI system prompt for level 3
│ ├── system-prompt-review.txt # AI system prompt for review
│ ├── system-prompt-congrats.txt # AI system prompt for congratulations
│ ├── introduction.txt # Introduction text
│ ├── sample-text.txt # Sample text for feeding
│ ├── dummy-text.json # Dummy text for different languages
│ ├── prompt-response-example.json # Example responses for different languages
│ └── logo.svg # Logo image
├── components/ # Vue components
│ ├── game/ # Game-related components
│ │ ├── CharacterStats.vue # Character statistics display
│ │ ├── DictionaryModal.vue # Dictionary modal for viewing learned words
│ │ ├── ProgressPanel.vue # Progress panel showing level and stats
│ │ ├── StoryDisplay.vue # Main story display component
│ │ ├── PostcardModal.vue # Postcard modal for viewing collected moments
│ │ ├── Notification.vue # Notification component
│ │ ├── LevelRequirements.vue # Level requirements display
│ │ └── SeeYouAgainButton.vue # "See you again" button component
│ ├── icons/ # Icon components
│ ├── HelloWorld.vue # Hello world component
│ ├── TheWelcome.vue # Welcome component
│ └── WelcomeItem.vue # Welcome item component
├── router/ # Router configuration
│ └── index.ts # Router configuration file
├── stores/ # Pinia state management
│ ├── gameStore.ts # Main game state management
│ └── counter.ts # Counter store (example)
├── views/ # Page views
│ ├── StartView.vue # Start page
│ ├── GameView.vue # Main game page
│ ├── AboutView.vue # About page
│ └── HomeView.vue # Home page
├── App.vue # Root component
└── main.ts # Application entry point
- Multi-language Support - Support for English, French, German, Spanish, Swedish, Japanese, and Chinese
- Character Creation System - Create and customize your alien character
- Vocabulary Learning System - Learn vocabulary through interactive stories
- RPG Elements - Character leveling and progression system
- Dictionary Function - View learned vocabulary
- Progress Tracking - Monitor learning progress
- AI-Powered Content - Dynamic story generation with DeepSeek API
- Postcard System - Collect memorable moments from AI interactions
- Review System - Reinforce learned vocabulary through spaced repetition
- Multiple Language Levels - Different language levels for different languages (CEFR, JLPT, HSK)
- Vue 3 + TypeScript
- Vite Build Tool
- Vue Router for Navigation
- Pinia for State Management
- Tailwind CSS for Styling
- DeepSeek API for AI Content Generation
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewThe project uses environment variables to store sensitive information such as API keys. To configure:
- Copy the
.env.examplefile and rename it to.env - Fill in your DeepSeek API Key in the
.envfile
cp .env.example .envNote: The .env file has been added to .gitignore and will not be committed to the version control system.
- StartView.vue - Start page where users can set their username, language preferences, and difficulty
- GameView.vue - Main game interface containing all game functionality
- AboutView.vue - About page with instructions and author information
- CharacterStats.vue - Displays character status (health, level, etc.)
- StoryDisplay.vue - Displays game story content and interactive vocabulary
- ProgressPanel.vue - Displays progress information (current level, achievements, daily stats)
- DictionaryModal.vue - Dictionary modal to view learned vocabulary
- PostcardModal.vue - Postcard modal to view collected moments
- SeeYouAgainButton.vue - "See you again" button for resetting the game
- LevelRequirements.vue - Displays level requirements
- Notification.vue - Notification component for displaying messages
Pinia is used for state management. Game state is defined in stores/gameStore.ts:
- Character attributes
- Story content
- Vocabulary data
- Progress information
- Postcard collection
- Game settings (username, target language, etc.)
Routes are configured in router/index.ts:
/- Start page/game- Main game page/about- About page
- All game components are located in the
src/components/game/directory - View components are located in the
src/views/directory - State management uses Pinia in the
src/stores/directory - Router configuration is in the
src/router/directory - Static assets are in the
public/assets/directory - AI system prompts are in the
public/assets/directory - Multi-language support is implemented through JSON files and dynamic content loading
- The project uses Tailwind CSS for styling
- Fonts are loaded via Google Fonts
- Data persistence uses localStorage
- Responsive design adapts to different screen sizes
- AI content generation powered by DeepSeek API
- Multi-language support with dynamic content loading based on target language
- Different language levels for different languages (CEFR for European languages, JLPT for Japanese, HSK for Chinese)










