Home
Softono
mentingo

mentingo

Open source MIT TypeScript
71
Stars
26
Forks
90
Issues
7
Watchers
1 week
Last Commit

About mentingo

White-label AI-mentor LMS platform for enterprise L&D

Platforms

Web Self-hosted

Languages

TypeScript

Mentingo LMS Core Project

MIT License Node.js pnpm NestJS Remix PRs Welcome
A modern, scalable Learning Management System built with cutting-edge technologies.

Features β€’ Getting Started β€’ Development β€’ Contributing


Table of Contents


Features

πŸ€– AI-Powered Training

  • Voice & Chat AI Mentor: Immersive, real-time role-play simulations for sales, compliance, and customer support training with instant, automated AI evaluation.
  • AI Course Architect: Transform raw corporate knowledge bases, documentation, and internal policies into structured interactive courses in minutes.
  • Automated Scenario Grading: AI-driven analysis and actionable feedback for open-ended problem-solving and behavioral tasks, reducing manual L&D workload.

🏒 Enterprise & White-Label Readiness

  • Full White-Label Architecture: Complete rebranding capabilities (custom domains, logos, custom styles) to perfectly match corporate identity.
  • Multi-Tenancy Infrastructure: Secure, isolated multi-tenant architecture designed for large corporate environments, holding companies, or B2B training vendors.
  • Enterprise Configuration Hub: Centralized admin toggles for seamless, zero-code activation of corporate infrastructure, including Corporate SSO (Microsoft 365 & Google Workspace Sign-In) and AI API provider management (e.g., OpenAI).

πŸ“Š Corporate L&D & Engagement Engine

  • Dynamic Organization Mapping: Advanced group and user management designed to seamlessly mirror complex corporate hierarchies (Departments, Branches, Teams) with automated course access inheritance.
  • Automated Recertification & Compliance: Set recurring expiration dates for mandatory corporate training (e.g., Compliance, Safety, Cyber Security) with automated re-enrollment and smart notification schedules.
  • Consumer-Grade UI/UX: A clean, distraction-free, modern interface inspired by top consumer apps to maximize employee adoption, engagement, and course completion rates.
  • Next-Gen Assessment Engine: Multi-format testing including behavioral scenarios, short/long-form text analysis, dynamic quizzes, and gamified consistency systems (Daily Streaks).
  • Deep Analytics & Insights: Granular tracking of user engagement, learning consistency, and practical training outcomes for L&D managers.

🧠 Knowledge Management & CMS

  • Corporate Knowledge Repository: Centralized, secure storage for organization-wide documentation, internal playbooks, and assets.
  • Internal Q&A & News Hub: Keep remote and hybrid teams aligned with a built-in corporate blog, announcement modules, and dynamic internal FAQ sections.


Overview

Apps

  • api: A NestJS backend application working as API
  • web: A Vite Remix SPA
  • reverse-proxy: For domains and https during development

Packages

  • email-templates: A package for email templates
  • eslint-config: A package for eslint configuration
  • performance-tests: K6 performance testing suite
  • typescript-config: A package for typescript configuration


Getting Started

Prerequisites

Before you begin, make sure you have:

  • Node.js version 20.15.0 (stated in .tool-versions)
    • We recommend using asdf for version management
  • pnpm package manager
  • Caddy v2.8.4
  • Docker and Docker Compose

Installation

Run the automated setup script:

On macOS/Linux:

pnpm setup:unix

On Windows:

pnpm setup:win

The setup script will automatically:

  • βœ“ Verify all prerequisites and tool versions
  • βœ“ Configure Caddy for HTTPS development
  • βœ“ Install project dependencies
  • βœ“ Build shared packages
  • βœ“ Set up environment files (.env)
  • βœ“ Start Docker containers
  • βœ“ Run database migrations
  • βœ“ Seed the database

[!NOTE] On Linux, Caddy needs permission to bind to port 443. The script will automatically handle this, but you may be prompted for your sudo password.

Default User Accounts

After setup completes, the following default accounts are available:

Role Email Password
Admin [email protected] password
Student [email protected] password
Content Creator [email protected] password

[!NOTE] The setup script seeds the default multi-tenant development environment. The primary tenant uses the accounts above.

Default tenant hosts:

  • https://tenant1.lms.localhost
  • https://tenant2.lms.localhost
  • https://tenant3.lms.localhost

[!TIP] If you open one of the other seeded hosts, log in with admin+tenant<number>@example.com and the same password.

[!TIP] If you need a populated environment with sample courses, lessons, and additional test users for development, you can run the development seed instead:

[!NOTE] All accounts are intended for development and testing purposes only.


Development

To start all applications in development mode:

pnpm dev

Available Services

After starting the development environment, you can access:

Service URL Description
Web App https://app.lms.localhost Frontend application
API https://app.lms.localhost/api Backend API url
Swagger https://api.lms.localhost/api API documentation
Mailhog https://mailbox.lms.localhost Email testing interface


Commands Reference

Formatting

  • Format all files with Prettier
    pnpm format
  • Check if all files are formatted with Prettier
    pnpm format:check
  • Lint all files in the web app with ESLint
    pnpm lint-tsc-web
  • Lint all files in the api app with ESLint
    pnpm lint-tsc-api
  • Fix linting errors in the web app
    pnpm lint-tsc-web --fix
  • Fix linting errors in the api app
    pnpm lint-tsc-api --fix

Database Commands

  • Generate new migration:
    pnpm db:generate

[!IMPORTANT] After generating a migration:

  1. Change its name to something descriptive that explains what it does
  2. Make sure to update the migration name in apps/api/src/storage/migrations/meta/_journal.json under the tag key
  • Run migrations:
    pnpm db:migrate

HTTP Client Generation

  • Generate TypeScript API client based on Swagger specification:
    pnpm generate:client

Email Templates

  • Build email templates:
    cd packages/email-templates
    pnpm build

Email templates are automatically built when starting the development server. To test emails, check the Mailhog interface at mailbox.lms.localhost.

Testing

  • Frontend tests:

    • Unit

      pnpm test:web
    • E2E

      bash test-e2e.sh

      or

      chmod +x test-e2e.sh
      ./test-e2e.sh
  • Backend tests:

    pnpm test:api        # Unit tests
    pnpm test:api:e2e    # E2E tests
  • Performance tests (requires k6):

    pnpm perf:load              # Load test
    pnpm perf:stress            # Stress test
    pnpm perf:spike             # Spike test
    pnpm perf:load:dashboard    # Load test with live dashboard

    [!NOTE] Performance tests require k6 to be installed globally and proper configuration. See packages/performance-tests/README.md for detailed setup and usage instructions.


Project Structure

lms-core
β”œβ”€β”€ apps
β”‚   β”œβ”€β”€ api
β”‚   β”‚   β”œβ”€β”€ src
β”‚   β”‚   └── test
β”‚   β”œβ”€β”€ reverse-proxy
β”‚   └── web
β”‚       β”œβ”€β”€ app
β”‚       β”‚   β”œβ”€β”€ api
β”‚       β”‚   β”œβ”€β”€ assets
β”‚       β”‚   β”œβ”€β”€ components
β”‚       β”‚   └── modules
β”‚       └── e2e
└── packages
    β”œβ”€β”€ email-templates
    β”œβ”€β”€ eslint-config
    β”œβ”€β”€ performance-tests
    β”œβ”€β”€ shared
    └── typescript-config


Contributing

We welcome contributions to Mentingo! Please check our Contributing Guide for guidelines about how to proceed.


Deployment

See Deployment Guide for more details.

Legal notice

This project was generated using Selleo LMS which is licensed under the MIT license.

Partners

selleo

Ready to scale your eLearning platform? Selleo will help with product-minded dev teams who are here to make it happen.