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.
- 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.
- 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.
- 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.
- Quiz History: Detailed logs of your quiz performance.
- Learning Analytics: Track your progress over time through intuitive dashboards.
- 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
- Framework: React 19
- Build Tool: Vite
- Styling: Tailwind CSS 4
- State Management: Zustand
- Routing: TanStack Router
- Data Fetching: TanStack Query v5
- Animations: Framer Motion
- UI Components: Radix UI & Lucide React
- Configure Connection: Update
src/ELA.Api/appsettings.jsonwith your PostgreSQL string. - AI Configuration: Ensure
Gemini:ApiKeyis set in user secrets or environment variables. - Database Migration:
dotnet ef database update --project src/ELA.Infrastructure --startup-project src/ELA.Api
- Run API:
dotnet run --project src/ELA.Api
- Navigate to app:
cd src/ELA.ClientApp - Install Dependencies:
npm install
- Run Dev Server:
npm run dev
├── 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
MIT — Free to use and modify.