Learn Spanish Your Way

A self-hosted, open-source language learning platform with interactive lessons, vocabulary practice, and quizzes.

5 Lessons
50+ Vocabulary Words
100% Free & Open Source

Features

📚

Comprehensive Lessons

5 beginner-level lessons covering greetings, numbers, foods, colors, and family members.

🎯

Interactive Quizzes

Test your knowledge with multiple-choice quizzes and get instant feedback on your answers.

🔊

Audio Pronunciation

Click the speaker button on any vocabulary card to hear native Spanish pronunciation using text-to-speech technology.

📊

Track Progress

Monitor your learning journey with quiz scores and completion tracking.

🐳

Docker Ready

Deploy in seconds with Docker Compose. Everything is containerized and ready to run.

🔒

Self-Hosted & Private

Your data stays with you. No tracking, no ads, complete privacy.

Quick Setup

🐳 Docker Setup (Recommended)

# Clone the repository
git clone https://github.com/thelonewolf39/language-learning-web.git
cd Language-Learning-web

# Start the application
docker-compose up -d

# Access at http://localhost:3000

That's it! The frontend runs on port 3000 and the backend API on port 8000.

💻 Manual Development Setup

Backend Setup

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload

Frontend Setup

cd frontend
npm install
npm run dev

Requirements

  • Docker Setup: Docker and Docker Compose
  • Manual Setup: Python 3.11+, Node.js 20+

Tech Stack

Frontend

  • Vue 3 - Progressive JavaScript framework
  • Vite - Fast build tool
  • Axios - HTTP client
  • Tailwind CSS - Utility-first CSS

Backend

  • FastAPI - Modern Python web framework
  • SQLAlchemy - SQL toolkit and ORM
  • Passlib with Argon2 - Password hashing
  • SQLite - Lightweight database

Deployment

  • Docker - Containerization
  • Docker Compose - Multi-container orchestration
  • Nginx - Web server for frontend

We Welcome Collaborators!

Help us make language learning accessible to everyone. Whether you're a developer, designer, or language expert, your contributions are valuable.

🌟 Ways to Contribute

  • Add more lessons and vocabulary
  • Implement new features (audio, progress tracking, etc.)
  • Improve UI/UX design
  • Fix bugs and improve performance
  • Write documentation and tutorials
  • Translate to other languages

🚀 How to Start

  1. Fork the repository on GitHub
  2. Clone your fork locally
  3. Create a new branch for your feature
  4. Make your changes and test thoroughly
  5. Submit a pull request with a clear description