Skip to content

Yusuprozimemet/TyporaX-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ TyporaX-AI β€” AI Language Coach

Python FastAPI Groq License Contributions Welcome

TyporaX-AI is a personalized Dutch language learning platform powered by lightning-fast Groq AI models. Practice with specialized expert coaches, enjoy immersive podcast conversations, and receive real-time assessment with desktop PWA experience.

🌟 We're an open-source project and we welcome contributors! Whether you're fixing a typo or adding a new feature, your contributions help make language learning accessible to everyone. See how to contribute β†’


✨ Features

  • πŸŽ™οΈ Dutch Podcast Expert - Interactive Emma & Daan conversations with voice synthesis
  • πŸ€– AI Expert Coaches - Healthcare Expert, IT Interview Coach, Language Tutor
  • πŸ“Š Real-Time Assessment - Live feedback on grammar, fluency, and vocabulary
  • πŸ’» PWA Desktop App - Install as native desktop application
  • 🎯 Personality-Based Learning - MBTI-optimized study methods
  • 🎴 Anki Flashcards - Auto-generated spaced repetition cards
  • πŸ”Š Audio Pronunciation - Natural Dutch speech synthesis (Edge-TTS)
  • πŸ“ˆ Progress Tracking - Monitor your learning journey

πŸš€ Quick Start

Prerequisites

  • Python 3.13+
  • ~2GB RAM

Installation

# Clone repository
git clone https://github.com/Yusuprozimemet/TyporaX-AI.git
cd TyporaX-AI

# Create environment
conda create -n env python=3.13
conda activate env

# Install dependencies
pip install -r requirements.txt

# Setup API key (get free key from groq.com)
echo "GROQ_API_KEY=your_groq_api_key" > .env

# Launch application
python main.py

Access: Open browser to http://localhost:8000 β†’ Install as PWA for desktop experience


πŸ“‚ Project Structure

TyporaX-AI/
β”œβ”€β”€ main.py                    # FastAPI application
β”œβ”€β”€ requirements.txt           # Dependencies
β”œβ”€β”€ templates/index.html       # Web interface
β”œβ”€β”€ static/                    # CSS, JS, images
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ api/                   # API routes
β”‚   β”‚   β”œβ”€β”€ main_router.py     # Core endpoints
β”‚   β”‚   β”œβ”€β”€ chat_router.py     # Expert chat
β”‚   β”‚   └── assessment_router.py # Live assessment
β”‚   β”œβ”€β”€ services/              # Business logic
β”‚   β”‚   β”œβ”€β”€ lesson_bot.py      # Lesson generation
β”‚   β”‚   β”œβ”€β”€ assessment.py      # Language analysis
β”‚   β”‚   └── calibrator.py      # Learning method
β”‚   β”œβ”€β”€ utils/                 # Utilities
β”‚   β”‚   β”œβ”€β”€ audio.py           # TTS engine
β”‚   β”‚   β”œβ”€β”€ anki.py            # Flashcard export
β”‚   β”‚   └── pdf.py             # Report generation
β”‚   └── experts/               # Expert personalities
β”‚       β”œβ”€β”€ dutch_podcast_expert.py
β”‚       β”œβ”€β”€ healthcare_expert.py
β”‚       └── it_backend_interviewer.py
└── data/users/{user_id}/      # User profiles & progress

🎯 How It Works

1. Dutch Podcast Experience

Interactive Emma & Daan conversations β†’ Real-time voice synthesis β†’ Immersive listening practice

2. Expert Chat

Choose an expert β†’ Practice Dutch conversation β†’ Get AI responses tailored to domain

3. Real-Time Assessment

Every message analyzed for:

  • Grammar & Fluency (0-10 scores)
  • Vocabulary Level (Beginner β†’ Advanced)
  • Better Version (Corrected sentences)
  • Live Hints (Language tips, conversation tips, expert-specific guidance)

4. Desktop PWA

  • Install as App: Native desktop experience
  • Draggable Panels: Customizable assessment interface
  • Offline Ready: Works without internet connection

5. Export Resources

  • πŸ“„ PDF learning plans
  • 🎴 Anki flashcard decks
  • πŸ”Š Audio pronunciation files

βš™οΈ Configuration

Environment Setup

# Required: Groq API key (free at groq.com)
export GROQ_API_KEY="your_groq_api_key"

# Optional: Backup HuggingFace token
export HF_TOKEN="your_huggingface_token"

# Optional: Custom data directory
export TYPORAX_DATA_DIR="/custom/path"

Expert Customization

Edit prompts in prompts/ directory:

  • dutch_podcast_expert.json - Podcast conversations
  • healthcare_expert.json - Medical scenarios
  • it_backend_interviewer.json - Tech interviews
  • assessment.json - Language analysis
  • app.json - General language coaching

πŸ”§ API Endpoints

Endpoint Method Description
/ GET Web interface
/api/chat POST Expert conversation
/api/assessment POST Language analysis
/api/generate-lesson POST Create daily lesson
/download/pdf/{user_id} GET Learning plan PDF
/download/anki/{user_id} GET Flashcard deck
/download/audio/{user_id} GET Pronunciation audio

πŸ› οΈ Development

Adding New Expert

  1. Create personality file in src/experts/
  2. Add prompt template in prompts/
  3. Register in expert router
  4. Update frontend expert selector

Testing

# Test lesson generation
python -c "from src.services.lesson_bot import run_lesson_bot; print(run_lesson_bot('test', 'dutch'))"

# Run application
python main.py

πŸ› Troubleshooting

Port already in use:

# Change port in main.py
uvicorn.run(app, host="0.0.0.0", port=8001)

PDF generation issues (Windows):

conda install -c conda-forge gtk3 reportlab

Memory issues:

# Use lighter model or CPU-only
export CUDA_VISIBLE_DEVICES=""

🀝 Contributing

We welcome contributions from everyone! πŸŽ‰ Whether you're a developer, language expert, designer, or just passionate about education technology, there's a place for you here.

🌟 Why Contribute?

  • πŸš€ Help make language learning accessible to everyone
  • πŸ’‘ Share your expertise and ideas
  • 🌍 Join a community of developers and educators
  • πŸ“š Learn FastAPI, AI integration, and modern web development
  • ✨ See your code make a real impact

🎯 How to Contribute

For First-Time Contributors

  1. Fork the repository - Click the "Fork" button at the top right
  2. Clone your fork
    git clone https://github.com/YOUR_USERNAME/TyporaX-AI.git
    cd TyporaX-AI
  3. Set up development environment
    conda create -n env python=3.13
    conda activate env
    pip install -r requirements.txt
  4. Create a feature branch
    git checkout -b feature/your-feature-name
  5. Make your changes - Write code, fix bugs, improve docs
  6. Test your changes
    python main.py  # Test the application
  7. Commit with clear messages
    git add .
    git commit -m "Add: Brief description of your change"
  8. Push to your fork
    git push origin feature/your-feature-name
  9. Open a Pull Request - Go to the original repository and click "New Pull Request"

Contribution Ideas

πŸ› Bug Fixes

  • Fix reported issues in GitHub Issues
  • Improve error handling
  • Fix typos or broken links

✨ New Features

  • Add support for new languages (French, Spanish, German, etc.)
  • Create new expert personalities (Business Coach, Travel Guide, etc.)
  • Implement new assessment metrics
  • Add gamification features (badges, streaks, etc.)

🎨 UI/UX Improvements

  • Enhance the web interface design
  • Improve mobile responsiveness
  • Add dark mode support
  • Create better visualizations for progress tracking

πŸ“š Documentation

  • Improve README or other docs
  • Add code comments
  • Create tutorials or video guides
  • Translate documentation to other languages

πŸ”§ Code Quality

  • Refactor code for better performance
  • Add unit tests
  • Improve code organization
  • Optimize API endpoints

🌐 Localization

  • Translate UI to other languages
  • Add language-specific learning content
  • Adapt cultural references

πŸ“ Contribution Guidelines

  • Code Style: Follow PEP 8 for Python code
  • Commit Messages: Use clear, descriptive commit messages (e.g., "Add: Spanish language support", "Fix: Audio playback issue")
  • Testing: Test your changes thoroughly before submitting
  • Documentation: Update docs if you change functionality
  • Small PRs: Keep pull requests focused on a single feature or fix

πŸ› Reporting Issues

Found a bug? Have a suggestion? Please open an issue on GitHub:

  1. Check if the issue already exists
  2. Use a clear, descriptive title
  3. Provide detailed steps to reproduce (for bugs)
  4. Include your environment details (OS, Python version, etc.)

πŸ’¬ Getting Help

  • Questions? Open a discussion on GitHub Discussions
  • Stuck? Comment on the issue you're working on
  • Ideas? Share them in GitHub Issues with the "enhancement" label

πŸŽ“ Learning Resources

New to the technologies we use?

πŸ† Recognition

All contributors will be:

  • Listed in our Contributors section
  • Credited in release notes
  • Part of a growing open-source community

Thank you for helping make language learning better for everyone! πŸ’™


πŸ‘₯ Contributors

We appreciate all contributions to this project! πŸ™

Want to see your name here? Start contributing today!


πŸ“œ License

This project is licensed under the Apache 2.0 License - see LICENSE file.

This means you can:

  • βœ… Use this software commercially
  • βœ… Modify and distribute
  • βœ… Use privately
  • βœ… Use patents (if any)

With the conditions:

  • πŸ“‹ Include original license and copyright
  • πŸ“ State significant changes made

πŸ™ Acknowledgments

  • Hugging Face - AI model infrastructure
  • FastAPI - Modern web framework
  • Edge TTS - Natural speech synthesis

TyporaX-AI v8 - Where personality meets AI to unlock your language learning potential TyporaX-AI v8 - Where personality meets AI to unlock your language learning potential

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published