Skip to content

A novel solution to a Classroom environment similar to google classroom built for Local and Offline use.

Notifications You must be signed in to change notification settings

jeetbij/ITSProject-OnlineClassroom

Repository files navigation

Offline Classroom System

Problem

Many of the Professors in at our Institute(IIIT Sri City) use web services like Google Classroom for their courses. The problem here is:

  1. A lot of bandwidth is used to upload/download lectures, Assignments etc.

  2. Our Institute wants to come up with rules to allocate storage to the students.

To solve this problem we developed Offline Classroom which is hosted locally to our Institute servers.

Offline Classroom System as a Solution

• The aim to simplify creating, distributing and grading assignments in a paperless way.

• Initiative to provide a solution to high bandwidth usage of web services like google classroom by running the servers on localhost.

• Streamline the process of sharing files between teachers and students by allocating dedicated storage to the students.

• Used by 200+ targeted students, researchers who have actively volunteered to be a part of Aphlabet.


TechStack: Vue.js, Django, REST, MySQL

Client-side VueJs Code: https://github.com/AnubhavUjjawal/Aphlabet

Backend Django Code: https://github.com/Jeet-007/ITSProject-OnlineClassroom


A Demo is hosted here: http://34.93.45.49

Login Details:

Username: uma_garimella

Password: qazwsxedc


API Documentation

1. To get JWT Token :

POST: http://127.0.0.1:8000/api-token-auth/

Headers

     Content-Type	application/json

Body

     {
    "username": "itsadmin",
    "password": "qazwsxedc"
    }

2. To get Classrooms:

GET: http://127.0.0.1:8000/classroom/

Headers

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin

3. To create Classroom:

POST: http://127.0.0.1:8000/classroom/

Headers

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin 
  Content-Type : application/json

Body:

{
"name": "10th Classroom"
}

4. To edit Classroom:

PUT: http://127.0.0.1:8000/classroom/

Headers

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin
  Content-Type : application/json

Body:

{
"id":2,
"name": "3th Classroom",
}

5. To delete a Classroom:

DELETE: http://127.0.0.1:8000/classroom/

Headers

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin
  Content-Type : application/json

Body:

{
"id":2,
}

6. To get all the students from a Classroom:

GET: http://127.0.0.1:8000/classroom/students/

Params id: 1

Headers

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin

7. To add students in a Classroom:

POST: http://127.0.0.1:8000/classroom/students/

Headers

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
    username: itsadmin
    Content-Type : application/json

Body

{
	"id": 1,
	"students": ["itsadmin","itsadmin2"]
}

8. To delete students in a Classroom:

PUT: http://127.0.0.1:8000/classroom/students/

Headers

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
    username: itsadmin  
    Content-Type : application/json

Body

{
 "classroom_id": 1,
	"students_to_remove": ["itsadmin"]
}

9. To get all the moderators from a Classroom:

GET: http://127.0.0.1:8000/classroom/moderators/

Params

  	id: 1

Headers

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
    username: itsadmin

10. To add moderators in a Classroom:

POST: http://127.0.0.1:8000/classroom/moderators/

Headers

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
    username: itsadmin 
    Content-Type : application/json

Body

{
	"classroom_id": 1,
	"moderators": ["itsadmin","itsadmin2"]
}

11. To delete moderators in a Classroom:

PUT: http://127.0.0.1:8000/classroom/moderators/

Headers

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
    username: itsadmin 
    Content-Type : application/json

Body

{
	"classroom_id": 1,
"moderators_to_remove": ["itsadmin"]
}

12. To get User Details :

GET: http://127.0.0.1:8000/userauth/user

13. To add User in Database :

POST: http://127.0.0.1:8000/userauth/user/

Headers

      Content-Type	application/json

Body

 {
    "username": "itsadmin3",
    "first_name": "asdf",
    "last_name": "asdf",
    "email": "admin@admin.com",
    "mobile_no": "7014156060",
    "password":"qazwsxedc"
}

14. To get announcements in a classroom :

GET: http://127.0.0.1:8000/announcement/

Params:

  classroom_id = 1

Headers:

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
    username: itsadmin

15. To add announcement in a classroom :

POST: http://127.0.0.1:8000/announcement/

Headers:

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
    username: itsadmin
    Content-Type	application/json

Body

   {
    "content": “content test ",
    “classroom_id": 1
   }

16. To edit announcement in a classroom :

PUT: http://127.0.0.1:8000/announcement/

Headers:

    Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
    username: itsadmin
    Content-Type	application/json

Body

    {
   	 	"annoucement_id": "1",
    	"content": "test78"
    }

17. To get comments in an announcement :

GET: http://127.0.0.1:8000/announcement/comment/

Params:

  id = 10

Headers:

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin

18. To add comments in an announcement :

POST http://127.0.0.1:8000/announcement/comment

Headers:

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin
  Content-Type:	application/json

Body

{
    "announcement_id": 10,
    "parrent_comment_id":1,
    "comment_text": "Test Comment in Announcement”
}

19. To get comments with its replies:

GET http://127.0.0.1:8000/comment/

Params:

id = 1

Headers:

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin

20. To edit content add upvoter or downvoter in a comment :

PUT http://127.0.0.1:8000/comment/

Headers:

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: itsadmin
  Content-Type:	application/json

Body

    {
	"type":3,
	"comment_id": 1,
	"comment_text": "asdf2",
    }

Here:

		# type 1: comment edit
		# type 2: to add upvoter
		# type 3: to add a downvoter

21. To remove upvoter or downvoter in a comment :

DELETE http://127.0.0.1:8000/comment/

Headers:

Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
username:		 itsadmin
Content-Type:	application/json

Body

{
"type":2,
"comment_id": 1
}

Here:

		#type 1: to remove upvoter
		#type 2: to remove a downvoter

22. To get polls with its options from a class:

GET http://127.0.0.1:8000/polls/

Params:

classroom_id = 1

Headers:

Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
username: itsadmin

23. To post poll and its options in a class:

POST http://127.0.0.1:8000/polls/

Headers:

Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
username: 		itsadmin
Content-Type:	application/json

Body

	{
		"type":2,
		"classroom_id":1,
		"poll_text":"Which Bike",
		"parent_poll_id": 5,
		"poll_option_text":"KTM 3"
	}

Here:

	# 	type 1: Add Poll
	# 	{
	# 		"type":1,
	# 		"classroom_id":1,
	# 		"poll_text":"Which Bike"
	# 	}

	# 	type 2: Add PollOptions
	# 	{
	# 		"type":2,
	# 		"parent_poll_id": 5,
	# 		"poll_option_text":"KTM 2"
	# 	}

24. To get poll response from a poll:

GET http://127.0.0.1:8000/poll_response/

Params:

poll_id = 1

Headers:

Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
username: 	itsadmin1

25. To add poll response at a poll:

POST http://127.0.0.1:8000/poll_response/

Headers:

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: 	itsadmin1
  Content-Type:	application/json

Body

{
	"poll_id": 1,
	"poll_option_id": 6
}

26. To delete a poll :

DELETE http://127.0.0.1:8000/polls/

Headers:

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  username: 	itsadmin1
  Content-Type:	application/json

Body

{
	"poll_id": 6
}

27. Add student in a class by join code.

POST http://127.0.0.1:8000/classroom/joinclassroom/

Headers:

  Authorization	:	JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type:	application/json

Body

{
	"joinCode":"DBMSbbcfd"
}

28. To get all lectures uploaded in a classroom

GET ...../resources/?classroom_id=1&type='lecture'

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

29. To get all resources uploaded in a classroom

GET ...../resources/?classroom_id=1&type='resource'

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

30. Upload lecture in a classroom

POST ..../resources/

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

Body

{
	"classroom_id": 1,
	"attachment" : File,
	"description" : "Lecture",
	"is_lecture" : True
}

31. Upload resources in a classroom

POST ..../resources/

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

Body

{
	"classroom_id": 1,
	"attachment" : File,
	"description" : "Resource",
	"is_lecture" : False
}

32. Get all comments on a resource or lecture

GET ..../resources/comment/?resource_id=1

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

33. Post a comment on lecture or resource

POST ..../resources/comment/

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

Body

	{
		"resource_id": 1,
		"comment_id" : comment id OR None,
		"content" : "Comment content"
	}

34. Get all assignment in a classoom

GET ..../assignment/?classroom_id=1

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

35. Upload a assignment

POST ..../assignment/

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

Body

{
	"classroom_id": 1,
	"title" : "Assignment Title",
	"attachment" : File,
	"max_score" : Integer,
	"deadline" : datetimefield
}

36. Get all submissions of an assignment in a classroom

GET ..../assignment/submission/?assignment_id=1

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

37. Upload Submission

POST ..../assignment/submission/

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

Body

{
	"assignment_id": 1,
	"attachment" : File
}

38. Get all comments on an assignment

GET ..../assignment/comment/?assignment_id=1

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

39. Upload Submission

POST ..../assignment/comment/

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

Body

	{
		"assignment_id": 1,
		"comment_id" : comment id OR None,
		"content" : "Comment content"
	}

40. Delete Announcement

DELETE http://127.0.0.1:8080/announcement

Headers:

  Authorization : JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Iml0c2FkbWluIiwiZXhwIjoxNTM5NDQwMjQ3LCJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9.jU0oaps5aKpcMf-Du0HDk2jMMBGYsYvEV8NTWS0t5oI
  Content-Type: application/json

Body

	{
		"annoucement_id":8
	}

About

A novel solution to a Classroom environment similar to google classroom built for Local and Offline use.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published