BLMS is a comprehensive e-learning platform built with NestJS on the backend, designed to enhance the online learning experience by providing a robust set of features for students, instructors, and administrators.
- Backend:
- NestJS (Node.js framework)
- TypeScript
- Frontend:
- ReactJS / Flutter
- Database:
- PostgreSQL
- ORM:
- TypeORM
- Authentication:
- Passport.js
- JWT
- Real-time Communication:
- Socket.IO
- WebSocket
- Node.js (v16+ recommended)
- npm or yarn
- NestJS CLI
- PostgreSQL
npm install -g @nestjs/cli
git clone https://github.com/HanyMedhat10/BLMS-Graduation-Project.git
cd blms-project
cd backend
npm install
Create a .env
file in the backend directory with the following variables:
# Database Configuration
PGHOST=
PGPORT=
PGUSER=
PGPASSWORD=
PGDATABASE=
# Mail Configuration
MAIL_HOST=
MAIL_PORT=
MAIL_USER=
MAIL_PASSWORD=
DEFAULT_MAIL_FROM=
# Email Admin Configuration
ADMIN_USERNAME=
ADMIN_EMAIL=
ADMIN_PASSWORD=
# Application Configuration
PORT=3000
# Application Name
APP_NAME=
# Run migrations
npm run migration:run
# (Optional) Seed database
npm run seed
# Development mode
npm run start:dev
# Production mode
npm run start:prod
blms-project/
│
├── backend/
│ ├── src/
│ │ ├── modules/
│ │ │ ├── auth/
│ │ │ ├── chat/
│ │ │ ├── clerk/
│ │ │ ├── college/
│ │ │ ├── course/
│ │ │ ├── dash-board/
│ │ │ ├── department/
│ │ │ ├── doctor/
│ │ │ ├── head-of-department/
│ │ │ ├── material/
│ │ │ ├── quiz/
│ │ │ ├── student/
│ │ │ ├── submit-assignment/
│ │ │ ├── submit-quiz/
│ │ │ └── assignments/
│ │ ├── common/
│ │ │ ├── guards/
│ │ │ ├── interceptors/
│ │ │ └── decorators/
│ │ ├── config/
│ │ └── app.module.ts
│ ├── migrations/
│ ├── seeds/
│ └── test/
│
├── frontend/
└── docs/
- Implements JWT authentication
- User registration and login
- Role-based access control
- CRUD operations for quizzes
- Question management
- Result tracking
- Assignment creation and management
- Submission handling
- Grading system
# Unit tests
npm run test
# E2E tests
npm run test:e2e
# Test coverage
npm run test:cov
$baseURl/api
# Run Swagger
npm run start:swagger
- Use
npm run build
to create a production build - Configure environment-specific settings
- Consider containerization with Docker
- Implement advanced quiz analytics
- Add more interactive learning features
- Enhance real-time communication
- Implement comprehensive reporting system
-
Fork the repository
-
Create a feature branch
git checkout -b feature/amazing-nestjs-feature
-
Commit changes
git commit -m 'Add some amazing feature'
-
Push to the branch
git push origin feature/amazing-nestjs-feature
-
Open a Pull Request
BLMS is MIT licensed
- Hany Medhat
- Project Repository: https://github.com/HanyMedhat10/BLMS-Graduation-Project.git
- LinkedIn: https://www.linkedin.com/in/hany-medhat-74452520a/
- Email: hany.medhat24@gmail.com
- NestJS Community
- https://github.com/nestjs/nest