virtual-classroom

System Design

alt text

serverIp

http://128.199.29.255/

System Requirements (Dev):

  • Docker (v18+)
  • Docker Compose (1.22+)
  • A real Development computer (Running Linux or Mac)

Config Files

Configurations are in the .env.copy file. Need to create .env file from .env.copy.

Command list:

Use npm i to install all packages

Run Project

Use docker-compose up --build build and run the project locally with port 5000. After running the project a super admin will create.

APIs

Login

url: POST /login

Request

{
    "email": "fazlerabby07@gmail.com",
    "password": "teacher1"
}

SuperAdmin and Teacher registration (Need to pass super admin login token)

url: POST /api/v1/pvt/admin-teacher-registration

Header

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MGNmNmUyMjYxMmIxNzAwMTM1ZDNkNzMiLCJlbWFpbCI6InN1cGVyYWRtaW5AZ21haWwuY29tIiwicm9sZSI6InN1cGVyQWRtaW4iLCJ0dGwiOjE4MDAwMDAsImlhdCI6MTYyNDIwNjk1OSwiZXhwIjoxNjI0MjkzMzU5fQ.nZlyWyInJO5BPS3rfhib1CLAdrAlInFkqxTefmcvnV8"
}

Request

{
    "fullName": "Teacher1",
    "email": "teacher1@gmail.com",
    "role": "teacher",
    "password": "teacher1"
}

Create Classroom (Need to pass teacher login token)

url: POST /api/v1/pvt/classrooms

Header

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MGNmNmUyMjYxMmIxNzAwMTM1ZDNkNzMiLCJlbWFpbCI6InN1cGVyYWRtaW5AZ21haWwuY29tIiwicm9sZSI6InN1cGVyQWRtaW4iLCJ0dGwiOjE4MDAwMDAsImlhdCI6MTYyNDIwNjk1OSwiZXhwIjoxNjI0MjkzMzU5fQ.nZlyWyInJO5BPS3rfhib1CLAdrAlInFkqxTefmcvnV8"
}

Request

{
    "title": "English",
    "teacherId": "60cf6e8b612b1700135d3d77"
}

Student Registration

url: `POST /student-registration

Request

{
    "fullName": "student2",
    "email": "hussain.rabby@sharetrip.net",
    "role": "student",
    "password": "123456",
    "invitationCode": "r2g5w59e",
    "schoolId": "S-002"
}

create assignment (Need to pass teacher login token)

url: POST /api/v1/pvt/assignments

Header

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MGNmMGJkYjQ3NDUyMTAwMTM0ZGRjYzgiLCJlbWFpbCI6ImZhemxlcmFiYnkwN0BnbWFpbC5jb20iLCJyb2xlIjoidGVhY2hlciIsInR0bCI6MTgwMDAwMCwiaWF0IjoxNjI0MTgxOTAyLCJleHAiOjE2MjQyNjgzMDJ9.lw_bx0oEJ_yLW1rgXlbIVRs1ZKkI4yXaYHnozj8HoVA"
}

Request

It will be a form-data

{
    "classroomId": "60cf6f16612b1700135d3d7c",
    "title": "English assignment1",
    "teacherId": "60cf6e8b612b1700135d3d77",
    "startDate": "2021-06-21T01:20:00",
    "lastDateOfsubmition": "2021-06-21",
    "assignment": "file link"
}

submit student assignmnet (Need to pass student login token)

url: PUT /api/v1/pvt/assignments/:assignmentId/student-assignment

Header

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MGNmMGQ3NjQ3NDUyMTAwMTM0ZGRjY2YiLCJlbWFpbCI6ImZhemxlLmhhbmR5bWFtYUBnbWFpbC5jb20iLCJyb2xlIjoic3R1ZGVudCIsInR0bCI6MTgwMDAwMCwiaWF0IjoxNjI0MTg3NzE0LCJleHAiOjE2MjQyNzQxMTR9.tGq9y6Sq7biZx3ENAxGEZzzYDQcx-qWGGEgML2yhDuQ"
}

Request

It will be a form-data

{
    "assignment": "file link"
}

upload assignment result by teacher (Need to pass teacher login token)

url: `PUT /api/v1/pvt/assignments/:assignmentId/assignment-result

Header

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MGNmMTNhZDdiOGM4MTAwZDU2ZGI0OGYiLCJlbWFpbCI6Imh1c3NhaW4ucmFiYnlAc2hhcmV0cmlwLm5ldCIsInJvbGUiOiJ0ZWFjaGVyIiwidHRsIjoxODAwMDAwLCJpYXQiOjE2MjQxODc5NzcsImV4cCI6MTYyNDI3NDM3N30.RDddBoMh7_l3Y6Lf6DyPMDXiZxqwRg3Bus5CJzlGx24"
}

Request

{
    "studentId": "60cf0d7647452100134ddccf",
    "marks": 80
}

upload assignment result by teacher

url: `GET/api/v1/pvt/assignments/:assignmentId/student-result

Header (Need to pass student login token)

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MGNmMGQ3NjQ3NDUyMTAwMTM0ZGRjY2YiLCJlbWFpbCI6ImZhemxlLmhhbmR5bWFtYUBnbWFpbC5jb20iLCJyb2xlIjoic3R1ZGVudCIsInR0bCI6MTgwMDAwMCwiaWF0IjoxNjI0MTg4NjU0LCJleHAiOjE2MjQyNzUwNTR9.-DofoKfrg9-uGJWv-eqnndhapt3Jf7DmlnDs2cQw5b8"
}