Skip to content
/ ela Public

A modular and scalable flashcard-style vocabulary learning system built with ASP.NET Core Web API, Entity Framework Core, and PostgreSQL, following Clean Architecture and Domain-Driven Design (DDD) principles without CQRS.

License

Notifications You must be signed in to change notification settings

Aspodel/ela

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 ELA - English Learning App

ELA is a modern, comprehensive platform designed to streamline English learning through Spaced Repetition, Interactive Mock Tests, and AI-Driven Personalization. Built with a focus on scalability and user experience, it leverages .NET 9 Clean Architecture on the backend and a high-performance React 19 frontend.

🌟 Key Features

🧠 Vocabulary & Flashcards

  • Personalized Decks: Organize vocabulary into custom decks for focused learning.
  • Spaced Repetition System (SRS): Optimized learning using the SM-2 Algorithm to maximize retention and minimize study time.
  • Rich Vocab Data: Manage words with IPA, multiple definitions, examples, and part-of-speech categorization.

🤖 AI-Powered Learning (Gemini Integration)

  • Topic-Based Generation: Instantly generate structured vocabulary lists based on any topic (e.g., "Space Exploration", "Business Meetings").
  • Dynamic Mock Tests: Generate realistic practice questions for all four language skills.
  • Intelligent Suggestions: Get AI-recommended topics to diversify your learning.

📝 Comprehensive Mock Tests

  • Listening: Interactive audio-based questions (placeholder support).
  • Reading: Passage analysis and comprehension checks.
  • Speaking: Practice with preparing and responding to prompts within time limits.
  • Writing: Task-based writing prompts with image-based stimulation.

📊 Progress Tracking

  • Quiz History: Detailed logs of your quiz performance.
  • Learning Analytics: Track your progress over time through intuitive dashboards.

🛠️ Tech Stack

Backend

  • Framework: .NET 9
  • Architecture: Clean Architecture (Domain, Application, Infrastructure, API)
  • Database: PostgreSQL with Entity Framework Core
  • AI Service: Google Gemini 1.5
  • API Documentation: Scalar UI (Modern Swagger alternative)
  • Design Patterns: Domain-Driven Design (DDD), Result Pattern, Guard Clauses

Frontend


🚀 Getting Started

Prerequisites

Backend Setup

  1. Configure Connection: Update src/ELA.Api/appsettings.json with your PostgreSQL string.
  2. AI Configuration: Ensure Gemini:ApiKey is set in user secrets or environment variables.
  3. Database Migration:
    dotnet ef database update --project src/ELA.Infrastructure --startup-project src/ELA.Api
  4. Run API:
    dotnet run --project src/ELA.Api

Frontend Setup

  1. Navigate to app:
    cd src/ELA.ClientApp
  2. Install Dependencies:
    npm install
  3. Run Dev Server:
    npm run dev

📂 Project Structure

├── src
│   ├── ELA.Api            # ASP.NET Core Web API
│   ├── ELA.Application    # Use cases, interfaces, and DTOs
│   ├── ELA.Domain         # Domain entities and business rules
│   ├── ELA.Infrastructure # Data persistence and external services
│   └── ELA.ClientApp      # React 19 Frontend (Vite)
├── tests                  # Unit and Integration tests
└── ELA.sln                # Solution file

📖 Learn More

🔖 License

MIT — Free to use and modify.

About

A modular and scalable flashcard-style vocabulary learning system built with ASP.NET Core Web API, Entity Framework Core, and PostgreSQL, following Clean Architecture and Domain-Driven Design (DDD) principles without CQRS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published