A comprehensive English vocabulary learning platform designed to help you master new words through various interactive learning modes.
LexicaNext helps you build and expand your English vocabulary through custom word sets and multiple practice modes. Create personalized vocabulary sets with English words, translations, and example sentences, then reinforce your learning with interactive exercises.
Create and organize your vocabulary sets with:
- English words with grammatical types (noun, verb, adjective, etc.)
- Translations in your native language
- Example sentences for context
- AI-powered translation and sentence generation
Manage words independently of sets. Browse, create, and edit words from a dedicated word list, and associate each word with multiple sets.
Review and study your vocabulary sets in a structured format. See all words with their translations, grammatical types, and example sentences at a glance.
Practice pronunciation and spelling by listening to words and typing them correctly.
Comprehensive learning with multiple-choice questions. Given a translation, select the correct English word from several options.
Advanced practice mode with open-ended questions. Type the meaning of words to test your knowledge retention.
- React 19 with TypeScript
- Vite for build tooling and development
- Mantine UI component library
- TanStack Query for simplifying API calls
- React Router 7 for navigation
- Auth0 for authentication
- ASP.NET Core 10.0
- PostgreSQL database
- Entity Framework Core for data access
- Clean Architecture with CQRS pattern
- FluentValidation for input validation
- OpenAPI/Swagger documentation
The application follows Clean Architecture principles:
- Domain Layer (
LexicaNext.Core) - Business logic and domain models - Infrastructure Layer (
LexicaNext.Infrastructure) - Data access, auth and external services - Presentation Layer (
LexicaNext.WebApp) - API endpoints and web hosting - Frontend (
Frontend/lexica-next-front) - React SPA with TypeScript - MCP Server (
Tools/mcp-server) - MCP server to interact with the app through Claude Desktop
- CQRS - Command Query Responsibility Segregation for separating read and write operations
- Repository Pattern - Data access abstraction
- Dependency Injection - Service registration with Scrutor
- Type Safety - Auto-generated TypeScript types from OpenAPI specification
-
Create an empty PostgreSQL database.
-
Add a database connection string to user secrets in the following projects:
LexicaNext.WebAppLexicaNext.Infrastructure
It should look like the following:
{ "ConnectionStrings": { "AppPostgresDb": "Server=<server>;Port=<port>;Database=<database_name>;User Id=<user_id>;Password=<user_password>" } } -
Add other secrets to user secrets in
LexicaNext.WebAppproject:- Storage configuration
- Auth0 configuration
- Microsoft Foundry configuration
-
Apply EF Core migration:
cd LexicaNext.Infrastructure dotnet ef database update
-
Run backend solution.
-
Install Dependencies
cd Frontend/lexica-next-front npm install
-
Environment Configuration
Create environment files in
Frontend/lexica-next-front/env-config/:.env.localfor development- Configure Auth0 credentials and API endpoints
-
Run Frontend
npm run dev
cd Frontend/lexica-next-front
# Development server
npm run dev
# Build for production
npm run build
# Lint code
npm run lint
# Format code
npm run prettier# Build solution
dotnet build LexicaNext.sln
# Run web application
dotnet run --project LexicaNext.WebApp
# Run CLI commands
dotnet run --project LexicaNext.CLIcd LexicaNext.Infrastructure
# Create migration
dotnet ef migrations add <migration_name> -o Db\Migrations
# Apply migrations
dotnet ef database updatedocker compose -f ./compose.yaml -p lexica-next up --buildWhen running the application locally, the OpenAPI specification is available at:
- Spec: https://localhost:7226/openapi/v1.json
- Swagger UI: https://localhost:7226/swagger
A Model Context Protocol (MCP) server that enables Claude to interact with the LexicaNext API. Provides tools for vocabulary set management operations.
cd Tools/mcp-server
npm install
npm run buildAvailable MCP tools:
get_lexica_status- Check API statusget_lexica_sets- Retrieve vocabulary setsget_lexica_set- Get specific set by IDcreate_lexica_set- Create new vocabulary setupdate_lexica_set- Update existing set
This project is licensed under the MIT License.







