Learning is a comprehensive learning management system built with NestJS and PostgreSQL. The platform provides assessment capabilities, coding practice environments, and course management features for educational institutions.
-
Application Server (NestJS)
- Handles API requests and business logic
- Manages user authentication and authorization
- Processes assessment submissions and grading
- Runs on port 3000 by default
-
Database Server (PostgreSQL)
- Stores all application data including users, courses, assessments
- Manages relationships between entities
- Handles transactions for data integrity
-
Code Execution Server
- Executes student code submissions in isolated environments
- Supports multiple programming languages
- Provides real-time feedback on code execution
- Node.js (v14 or higher)
- PostgreSQL (v12 or higher)
- Docker (for code execution environment)
-
Clone the Repository
git clone https://github.com/your-org/mms-learning.git cd mms-learning
-
Install Dependencies
npm install
-
Set Up Environment Variables
- Copy
.env.example
to.env
- Configure database connection details
- Set up authentication keys
- Configure code execution server URL
- Copy
-
Database Setup
npm run migration:import npm run migration:generate npm run migration:push
-
Start the Application
npm run dev
mms-learning/
├── src/
│ ├── controller/ # API endpoints and controllers
│ ├── service/ # Business logic implementation
│ ├── helpers/ # Utility functions
│ ├── schedule/ # Scheduled tasks and cron jobs
│ └── app.module.ts # Main application module
├── drizzle/ # Database schema and migrations
├── test/ # Test files
└── package.json # Project dependencies and scripts
- Create and manage various types of assessments
- Support for coding challenges, quizzes, and open-ended questions
- Automated grading for coding questions
- Tracking of student progress and performance
- Secure code execution environment using Docker
- Support for multiple programming languages
- Real-time feedback on code execution
- Code plagiarism detection
- Student and instructor roles with different permissions
- Progress tracking and analytics
- User authentication and authorization
- Course creation and organization
- Module and chapter management
- Resource sharing and distribution
API documentation is available at /api-docs
when the server is running. It provides detailed information about all available endpoints, request/response formats, and authentication requirements.
- Create feature branches from
develop
- Use pull requests for code review
- Merge to
develop
after approval
npm run test # Run unit tests
npm run test:e2e # Run end-to-end tests
npm run test:cov # Generate test coverage report
- Automated deployment via CI/CD pipeline
- Staging environment for testing
- Production environment for live application
-
Database Connection Issues
- Check database credentials in
.env
- Verify PostgreSQL service is running
- Check network connectivity
- Check database credentials in
-
Code Execution Failures
- Verify Docker is running
- Check code execution server logs
- Verify language support is enabled
-
Authentication Problems
- Check JWT secret in environment variables
- Verify token expiration settings
- Check user permissions
For technical support or questions, please contact the development team or raise an issue in the repository.
This project is licensed under the MIT License - see the LICENSE file for details.