Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Changelog

All notable changes to this project will be documented in this file.

## [2.0.0] - Jan 18, 2020

### Added

- New `utilities` app for housing different services like code evaluation, plagiarism, e-mail etc.
- Support for new languages `PHP` & `Bash`.
- New model for holding Moss Plagiarism results (For Future Use).
- Add `created_date` in **Assignment**, **Question** & **Classroom** model.
- Fixed a bug where a new file was saved every time a solution was submitted, (`OverwriteStorage()` in **Solution** Model).
- New `moss_id` field in **Professor** model.
- Support for Plagiarism Services (powered by Moss).

### Changed
- Submission path, the solutions are now saved inside `/media/submissions/assignments/<assg_id>/` with name like `<question-id>_<student_id>`.
- `profile_pic` and `instistution` fields now accept `null` while signing up for a new user.
- Default submission status is now set to _Not Attempted_.
- Renamed `Python` to `Python3`.
- `marks` field in **Question** model is now `null` acceptable.
- Only 1 Submission per student, **Solution** now relates to Student by `OneToOne` relation.
- `PATCH`/`DELETE` options for Classroom, Assignment, Questions & Submissions.


## [1.0.0] - Nov 27, 2019
- Initial Release
68 changes: 39 additions & 29 deletions api/urls.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
from django.urls import path, include
from .views import (
index,
index,
UserLoginView, UserLogoutView,
StudentSignupView, StudentViewSet,
ProfessorSignupView, ProfessorViewSet,
ClassroomCreateView, ClassroomJoinView, ClassroomViewSet,
AssignmentView, AssignmentCreateView,
QuestionView, QuestionCreateView,
RunCode, SolutionView, GetSubmission
StudentSignupView, StudentViewSet, StudentDetail,
ProfessorSignupView, ProfessorViewSet, ProfessorDetail,
ClassroomCreateView, ClassroomJoinView, ClassroomList, ClassroomDetail,
AssignmentList, AssignmentCreate, AssignmentDetail,
QuestionList, QuestionCreate, QuestionDetail,
SubmissionCreate, SubmissionList, SubmissionDetail,
PlagiarismView, RunCode
)


Expand All @@ -17,35 +18,44 @@
professor_list = ProfessorViewSet.as_view({'get': 'list'})
professor_detail = ProfessorViewSet.as_view({'get': 'retrieve'})

classroom_list = ClassroomViewSet.as_view({'get': 'list'})
classroom_detail = ClassroomViewSet.as_view({'get': 'retrieve'})



urlpatterns = [
path('', index, name='index'),
path('', index, name='index'),
path('signup/professor', ProfessorSignupView.as_view(), name='prof-signup'),
path('signup/student', StudentSignupView.as_view(), name='student-signup'),
path('login/', UserLoginView.as_view(), name='login'),
path('logout/', UserLogoutView.as_view(), name='logout'),

path('students/', student_list, name='students'),
path('students/<int:pk>/', student_detail, name='student'),
path('students/<int:pk>', StudentDetail.as_view(), name='student'),
path('professors/', professor_list, name='professors'),
path('professors/<int:pk>/', professor_detail, name='student'),

path('classroom/create', ClassroomCreateView.as_view(), name='classroom-create'),
path('classroom/join/', ClassroomJoinView.as_view(), name='classroom-join'),
path('classroom/<int:pk>/', classroom_detail, name='classroom'),
path('classrooms/', classroom_list, name='classrooms'),

path('assignment/create', AssignmentCreateView.as_view(), name='assignment-create'),
path('classroom/<int:class_id>/assignments', AssignmentView.as_view(), name='classroom-assignments'),

path('question/create', QuestionCreateView.as_view(), name='question-create'),
path('assignments/<int:assg_id>/questions/', QuestionView.as_view(), name='classroom-assignments-questions'),

path('coderunner/', RunCode.as_view(), name='run-code'),
path('submission/create', SolutionView.as_view(), name='submission-create'),
path('submissions/<int:question>/<int:student>/', GetSubmission.as_view(), name='submissions'),
path('professors/<int:pk>', ProfessorDetail.as_view(), name='professor'),

# All Classroom URLs
path('classrooms/create', ClassroomCreateView.as_view(), name='classroom-create'),
path('classrooms/join', ClassroomJoinView.as_view(), name='classroom-join'),
path('classrooms/<int:pk>', ClassroomDetail.as_view(), name='classroom-detail'),
path('classrooms', ClassroomList.as_view(), name='classrooms'),

# All Assignment URLs
path('assignments/create', AssignmentCreate.as_view(),
name='assignment-create'),
path('assignments', AssignmentList.as_view(), name='assignment-list'),
path('assignments/<int:pk>', AssignmentDetail.as_view(), name='assignment-list'),

# All Question URLs
path('questions/create', QuestionCreate.as_view(), name='question-create'),
path('questions/', QuestionList.as_view(), name='question-list'),
path('questions/<int:pk>', QuestionDetail.as_view(), name='question-detail'),

# All Solution/Submission URLs
path('submissions/create', SubmissionCreate.as_view(), name='submission-create'),
path('submissions/<int:pk>', SubmissionDetail.as_view(), name='submissions-detail'),
path('submissions', SubmissionList.as_view(), name='submissions'),

# Utility URLs
path('judge', RunCode.as_view(), name='code-judge'),
path('codesim/', PlagiarismView.as_view(),
name='plagiarism-detector')

]
Loading