SAMS is a scalable academic management platform designed to streamline teaching, learning, assessment, and grading workflows within universities.
The system enables instructors and students to manage courses, assignments, quizzes, meetings, academic resources, and grades through a unified platform similar to Google Classroom and Microsoft Teams.
Additionally, the platform integrates AI-powered plagiarism detection services to identify similarities between assignment submissions and support academic integrity.
- JWT Access Token Authentication
- Opaque Refresh Token Mechanism
- Passport.js Authentication Strategies
- Role-Based Access Control (RBAC)
- Secure Session Management
- User & Role Administration
- Manage Users
- Create New Users
- Activate / Deactivate User Accounts
- Change User Roles
- View All Roles
- Create and Manage Courses
- Publish Announcements and Posts
- Upload Learning Materials
- Schedule and Manage Online Meetings
- Create Assignments
- Upload Assignment Resources
- Review Student Submissions
- Automatic Grading for Non-Plagiarized Submissions
- AI-Assisted Plagiarism Detection and Review Workflow
- Manual Review for Submissions Exceeding the Similarity Threshold
-
Create Quizzes with Multiple Question Types:
- Multiple Choice Questions (MCQ)
- True / False
- Written Questions
-
Schedule Quizzes to Start at a Specific Time
-
Automatic Grading for MCQ and True/False Questions
-
Manual Grading for Written Questions
- View Grade Tables for All Students
- Export Grades to Excel
- Import Grades from CSV Files
- Support External Assessments and Exams Through Grade Imports
- Join Courses
- View Course Materials
- Participate in Announcements and Discussions
- Submit Assignment Solutions as Files
- Track Assignment Status
- Join Scheduled Online Sessions
- Take Scheduled Quizzes
- View Quiz Results and Grades
- View Grades Across All Course Classworks
- Track Academic Performance Within Each Course
The platform integrates with external FastAPI services to detect similarities between assignment submissions.
Features include:
- Assignment-Level AI Activation (On/Off)
- Instructor-Defined Similarity Threshold
- Automatic Comparison of Student Submissions
- Similarity Percentage Reporting
- Detection of Potentially Duplicated Assignment Solutions
The system follows a modular architecture built with NestJS.
- Authentication & Authorization
- Users & Roles
- Admin Dashboard
- Courses
- Enrollments
- Announcements
- Comments
- Materials
- Assignments
- Assignment Submissions
- Quizzes
- Questions
- Quiz Submissions
- Grades
- Meetings
- Similarity Detection
- Mail & Notifications
- AWS S3 Integration
- Node.js
- NestJS
- Passport.js
- JWT Authentication
- MongoDB
- MongoDB Aggregation Pipeline
- Redis
- BullMQ
- AWS S3 Bucket
- CloudFront CDN
- FastAPI
- Docker
- Docker Compose
- Azure Virtual Machine (VM)
- Swagger (OpenAPI)
src
├── common
│ ├── constants
│ ├── decorators
│ ├── dto
│ ├── enums
│ ├── exceptions
│ ├── filters
│ ├── schemas
│ └── utils
│
├── modules
│ ├── admin
│ ├── announcements
│ ├── assignment-submissions
│ ├── assignments
│ ├── auth
│ ├── cache
│ ├── comments
│ ├── courses
│ ├── database
│ ├── enrollments
│ ├── grades
│ ├── instructor
│ ├── mail
│ ├── materials
│ ├── meeting
│ ├── questions
│ ├── quiz
│ ├── quiz-submissions
│ ├── roles
│ ├── s3
│ ├── similarity
│ └── users
│
├── app.module.ts
└── main.tsThe database schema and entity relationships can be found in:
docs/database-design/sams-erd.pdf
docs/database-design/sams-erd.pngSwagger documentation is available after running the application:
http://localhost:3000/api/docsgit clone <repository-url>
cd sams-apiCreate a .env file in the project root and configure the following variables:
# Environment
NODE_ENV=
PORT=
# Initial Admin
INITIAL_ADMIN_EMAIL=
INITIAL_ADMIN_PASSWORD=
INITIAL_ADMIN_NAME=
INITIAL_ADMIN_ID=000000001
# MongoDB
MONGO_INITDB_ROOT_USERNAME=
MONGO_INITDB_ROOT_PASSWORD=
MONGODB_URI=
# JWT
JWT_ACCESS_TOKEN_SECRET=
JWT_ACCESS_TOKEN_EXPIRATION_MS=
JWT_REFRESH_TOKEN_SECRET=
JWT_REFRESH_TOKEN_EXPIRATION_MS=
# Redis
REDIS_HOST=
REDIS_PORT=
# Mail
MAIL_HOST=
MAIL_PORT=
MAIL_USER=
MAIL_PASS=
# AI Similarity Detection
WEBHOOK_URL=
PLAGIARISM_WEBHOOK_SECRET=
PLAGIARISM_CHECK_URL=
PLAGIARISM_CHECK_DELAY_AFTER_DUE_DATE=
# Agora
AGORA_APP_ID=
AGORA_APP_CERTIFICATE=
# AWS S3
BUCKET_NAME=
BUCKET_REGION=
ACCESS_KEY=
SECRET_ACCESS_KEY=
BASE_CLOUDFRONT_URL=npm installnpm run start:devdocker compose up -d- Role-Based Academic Management Platform
- JWT Authentication with Access & Refresh Tokens
- Admin Dashboard for User and Role Management
- Quiz Scheduling and Automatic Grading
- Excel & CSV Grade Management
- AWS S3 & CloudFront File Storage
- Redis Caching and BullMQ Background Jobs
- MongoDB Aggregation Pipelines
- AI-Powered Assignment Similarity Detection
- Dockerized Deployment on Azure VM
- Modular and Scalable NestJS Architecture
- Swagger API Documentation
- Real-Time Online Session Management with Agora
The following repositories contain the client applications that integrate with this backend:
| Application | Description |
|---|---|
| SAMS App | Flutter application for students and instructors. |
| SAMS Dashboard | Web-based dashboard for platform administration. |