Mentingo
White-label AI-mentor LMS platform for enterprise L&D
Install / Use
/learn @Selleo/MentingoREADME
Mentingo LMS Core Project
</br>
A modern, scalable Learning Management System built with cutting-edge technologies.
Features • Getting Started • Development • Contributing
</div> </br> <div align="center">Table of Contents
</div>- Mentingo LMS Core Project
Features
</div>- Course Structure: Courses built from categories, modules and various lesson types
- Lesson Types: Supports text, video, presentation and quiz lessons
- Quiz Engine: Multiple-choice, single-choice, true/false, gap-filling, short/long text answers and image-based questions
- Price Configuration: Flexible setup for free and paid course access
- Progress Tracking: Automatic progress saving and course completion logic
- Daily Streak Tracking: Motivational system for tracking learning consistency
- Statistics & Insights: Detailed data on user engagement and learning results
- Admin Panel: Tools for managing users, courses, content and statistics
- User Roles: Separate experiences for students and administrators
Overview
</div>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
</div>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 with test data
[!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 | admin@example.com | password | | Student | user@example.com | password | | Content Creator | contentcreator@example.com | password |
[!NOTE] The setup script creates a minimal production-like environment with only these three essential accounts.
[!TIP] If you need a populated environment with sample courses, lessons, and additional test users for development, you can run the development seed instead:
pnpm db:seedThis will create accounts:
| Role | Email | Password | | --------------- | --------------------------- | -------- | | Student | student@example.com | password | | Student | student2@example.com | password | | Content Creator | contentcreator@example.com | password | | Content Creator | contentcreator2@example.com | password | | Admin | admin@example.com | password |
</br> <div align="center">[!NOTE] All accounts are intended for development and testing purposes only.
Development
</div>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 |
</br> <div align="center">Commands Reference
</div>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:
- Change its name to something descriptive that explains what it does
- Make sure to update the migration name in
apps/api/src/storage/migrations/meta/_journal.jsonunder thetagkey
- 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.shor
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
</div>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
</br>
<div align="center">
Contributing
</div>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

Ready to scale your eLearning platform? Selleo will help with product-minded dev teams who are here to make it happen.
Related Skills
bluebubbles
332.9kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
slack
332.9kUse when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
frontend-design
81.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Agent Development
81.9kThis skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
