diff --git a/CLI/teacher.py b/CLI/teacher.py index 348aa4d..616521b 100644 --- a/CLI/teacher.py +++ b/CLI/teacher.py @@ -569,7 +569,7 @@ class Teacher: 'due_date': str(due), 'owner':self.id } - postDB(self.username, self.password, ass, 'http://127.0.0.1:8000/api/assignments/') + print(postDB(self.username, self.password, ass, 'http://127.0.0.1:8000/api/assignments/')) course['assignments'].append(oname) cinfo = { diff --git a/Website/api/serializers.py b/Website/api/serializers.py index 077a634..d4ff4ad 100644 --- a/Website/api/serializers.py +++ b/Website/api/serializers.py @@ -25,7 +25,7 @@ class AssignmentSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Assignment # fields = ['url','name', 'due_date', 'path' , "Class","teacher",'owner'] - fields = ['name', 'due_date', 'path' ,"teacher",'owner'] + fields = ['name', 'due_date', 'path' ,'teacher','owner'] class ClassSerializer(serializers.ModelSerializer): # assignments = AssignmentSerializer(many=True, read_only=True,allow_null=True) diff --git a/docs/source/cli.rst b/docs/source/cli.rst index eb4ad14..bd77066 100644 --- a/docs/source/cli.rst +++ b/docs/source/cli.rst @@ -8,24 +8,25 @@ Making a user: You will be redirected to a login page for the SkoolOS website. If you have already created an account on the website, enter login informatiton. If not, select the registration button bellow and create an account. Once you create an account via Ion OAuth and SkoolOS, login. The window should close, prompting: +:: + Enter SkoolOS Username: + Enter SkoolOS Password: -Enter SkoolOS Username: -Enter SkoolOS Password: - -Enter the valid SkoolOS username and password. Congratialations, you have successfully logged in. + Enter the valid SkoolOS username and password. Congratialations, you have successfully logged in. 1. CLI as a teacher: ============ +Start the CLI and select your username. For instance, teacher 'eharris1':: -.. code-block:: python python skoolos.py ? Select User: (Use arrow keys) 1) 2022rkhondak ❯ 2) eharris1 3) Make new user -You will then be given the choice to select an existing class, Make a new class, or exit the CLI::: +You will then be given the choice to select an existing class, Make a new class, or exit the CLI: +:: ? Select class: (Use arrow keys) ❯ Art12_eharris1 @@ -37,7 +38,7 @@ You will then be given the choice to select an existing class, Make a new class, Making a new class: ------- -Select 'Make a New Class'. You will then be prompted to enter a class name. The format for every class must be _ (Example: Art12_eharris1). +Select 'Make a New Class'. You will then be prompted to enter a class name. The format for every class must be _ (Example: Art12_eharris1). Enter Period (must be a positive integer). You will then be prompted to add students. If you have a list of students, enter the relative path of a text file with the student usernames. The file must be a .txt file and have one student username per line. If you add an individual student, simply enter their ion username. one username per line.:: @@ -48,12 +49,12 @@ one username per line.:: History12_eharris1 ❯ Make New Class Exit SkoolOS - + ? Add Students): (Use arrow keys) ❯ 1) Add individual student 2) Add list of students through path 3) Exit - + ? Add Students): 2) Add list of students through path File must be .txt and have 1 student username per line Relative Path: students.txt @@ -69,7 +70,6 @@ Accessing an existing class Once you have created a class, you can then view and modify certain fields. (Open opening a class, any students who have accepted the request will be automatically added you the class.):: -: ? Select class: (Use arrow keys) Art12_eharris1 Civ_eharris1 @@ -79,7 +79,7 @@ added you the class.):: Truck_eharris1 Make New Class Exit SkoolOS - + Class: English12_eharris1 ? Select option: (Use arrow keys) ❯ 1) Request Student @@ -94,7 +94,89 @@ Select 'Request Student'. You will then be prompted to add students. If you have The file must be a .txt file and have one student username per line. If you add an individual student, simply enter their ion username. one username per line.:: -: + Class: English12_eharris1 + ? Select option: (Use arrow keys) + ❯ 1) Request Student + 2) Add assignment + 3) View student information + 4) Exit + + ? Add list of students (input path): (Use arrow keys) + ❯ 1) Add individual student + 2) Add list of students through path + 3) Exit + + ? Select option: 1) Request Student + ? Add list of students (input path): 1) Add individual student + ? Student Name: 2022rkhondak + +OR:: + + ? Add Students): 2) Add list of students through path + File must be .txt and have 1 student username per line + Relative Path: students.txt + +Adding an assignment +------- + +To add an assignment, make an assginment subdirectory in the corresponding class wiht at least 1 file. Somehting like: +:: + + eharris1/English12_eharris1/Assignment1/instruct.txt + +You must also put a due date in the correct format.:: + + ? Select new assignment: Assignment1 + Enter due date (Example: 2020-08-11 16:58): 2020-08-11 16:58 + +View student information +------- + +You can view certain information of any student requested or confirmed in the given class. Simply select enter their name and see their profile. You are also given the choice +to view their logs (files they have saved, written, git commands, and file that dont match the extention whitelist). Note that as a teacher, you can view a student's current +work at ANY TIME. Simply go to the 'Students' directory and select the student's directory.:: + + eharris1/Students/English12_eharris1/2022rkhondak + eharris1/Students/English12_eharris1/2023rumareti + + ? Select option: (Use arrow keys) + 1) Request Student +OR:: + + ? Add Students): + 1) Add individual student + Student name: 2022rkhondak + +Accessing an existing class +===================== + +Once you have created a class, you can then view and modify certain fields. (Open opening a class, any students who have accepted the request will be automatically +added you the class.):: + + ? Select class: (Use arrow keys) + Art12_eharris1 + Civ_eharris1 + ❯ English12_eharris1 + History12_eharris1 + Random_eharris1 + Truck_eharris1 + Make New Class + Exit SkoolOS + + Class: English12_eharris1 + ? Select option: (Use arrow keys) + ❯ 1) Request Student + 2) Add assignment + 3) View student information + 4) Exit + +Requesting Students +------- + +Select 'Request Student'. You will then be prompted to add students. If you have a list of students, enter the relative path of a text file with the student usernames. +The file must be a .txt file and have one student username per line. If you add an individual student, simply enter their ion username. +one username per line.:: + Class: English12_eharris1 ? Select option: (Use arrow keys) ❯ 1) Request Student @@ -117,137 +199,56 @@ OR:: File must be .txt and have 1 student username per line Relative Path: students.txt -Adding an assignment -------- - -To add an assignment, make an assginment subdirectory in the corresponding class wiht at least 1 file. Somehting like: - - eharris1/English12_eharris1/Assignment1/instruct.txt - -You must also put a due date in the correct format. - -: - ? Select new assignment: Assignment1 - Enter due date (Example: 2020-08-11 16:58): 2020-08-11 16:58 - -View student information -------- - -You can view certain information of any student requested or confirmed in the given class. Simply select enter their name and see their profile. You are also given the choice -to view their logs (files they have saved, written, git commands, and file that dont match the extention whitelist). Note that as a teacher, you can view a student's current -work at ANY TIME. Simply go to the 'Students' directory and select the student's directory. - - eharris1/Students/English12_eharris1/2022rkhondak - eharris1/Students/English12_eharris1/2023rumareti - -OR - -? Add Students): 1) Add individual student -Student name: 2022rkhondak - -Accessing an existing class -===================== - -Once you have created a class, you can then view and modify certain fields. (Open opening a class, any students who have accepted the request will be automatically -added you the class.) - -? Select class: (Use arrow keys) - Art12_eharris1 - Civ_eharris1 - ❯ English12_eharris1 - History12_eharris1 - Random_eharris1 - Truck_eharris1 - Make New Class - Exit SkoolOS - -Class: English12_eharris1 -? Select option: (Use arrow keys) - ❯ 1) Request Student - 2) Add assignment - 3) View student information - 4) Exit - -Requesting Students -------- - -Select 'Request Student'. You will then be prompted to add students. If you have a list of students, enter the relative path of a text file with the student usernames. -The file must be a .txt file and have one student username per line. If you add an individual student, simply enter their ion username. -one username per line. - -Class: English12_eharris1 -? Select option: (Use arrow keys) - ❯ 1) Request Student - 2) Add assignment - 3) View student information - 4) Exit - -? Add list of students (input path): (Use arrow keys) - ❯ 1) Add individual student - 2) Add list of students through path - 3) Exit - -? Select option: 1) Request Student -? Add list of students (input path): 1) Add individual student -? Student Name: 2022rkhondak - -OR - -? Add Students): 2) Add list of students through path -File must be .txt and have 1 student username per line -Relative Path: students.txt - Adding Assignments ------- To add an assignment, you must first make a subdirectory for that assignment in the given class. You must then add a file wihin that subdirectory. For Example: For teacher eharris1 and class English11_eharris1, valid assignment folder would look like: +:: -eharris1/English11_eharris1/Assignment1/instructions.txt + eharris1/English11_eharris1/Assignment1/instructions.txt Then, select an assignment from the given options. Then enter a due date in the correct format: YYYY-MM-DD HH:MM. The assignment will then be coppied to every student -who has confirmed the class. +who has confirmed the class.:: -Class: Truck_eharris1 -GET:200 -? Select option: (Use arrow keys) - 1) Request Student - ❯ 2) Add assignment - 3) View student information - 4) Exit - -? Select new assignment: (Use arrow keys) - ❯ Assignment1 - -? Select new assignment: Assignment1 -Enter due date (Example: 2020-08-11 16:58): 2020-08-11 16:58 - - Students in class: - 2022rkhondak - Requsted Students: - 2023rumareti - View student (Enter student's ion username): + Class: Truck_eharris1 + GET:200 + ? Select option: (Use arrow keys) + 1) Request Student + ❯ 2) Add assignment + 3) View student information + 4) Exit + + ? Select new assignment: (Use arrow keys) + ❯ Assignment1 + + ? Select new assignment: Assignment1 + Enter due date (Example: 2020-08-11 16:58): 2020-08-11 16:58 + + Students in class: + 2022rkhondak + Requsted Students: + 2023rumareti + View student (Enter student's ion username): 2. CLI as a student: ============ As a student, you can edit your work for certain classes and submit assignments. By default, your workr directory (your username) has a single readme. AND IT SHOULD STAY THAT WAY. -To make changes to a class, you must first select that class via the CLI. +To make changes to a class, you must first select that class via the CLI. +Select a class first: :: - - Select a class first: ? Select class: (Use arrow keys) English12_eharris1 Art12_eharris1 ❯ Random_eharris1 Exit SkoolOS -You can then view the assignments associated with the class. Open you work directory and modify files within your assignments. At any time, you can 'Save' or go 'Back'. +You can then view the assignments associated with the class. Open you work directory and modify files within your assignments. At any time, you can 'Save' or go 'Back'. When you are ready, you can submit an assignment: - -: +:: ? Select: (Use arrow keys) Save @@ -269,5 +270,3 @@ For testing purposes, we recommed having both student and teacher users on the C On a teacher user (eharris1), add an student to a given class (English12_eharris1). Then, exit out of the CLI and run skoolos.py again, but select a student account. Selecting a student account should automatically accept the teacher's invitation. You can then begin creating assignments as a teacher. We recommend switching between accounts, modifying assignments on the students end, exiting, then viewing them in the 'Student' directory as a teacher. - - diff --git a/docs/source/install.rst b/docs/source/install.rst index 55dce84..69e8cb3 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -4,13 +4,14 @@ Installation Git clone repository: ------- -https://gitlab.tjhsst.edu/understudyathon-2020/group-1/schoolos.git +https://gitlab.tjhsst.edu/understudyathon-2020/group-1/skoolos.git Install repository and create env ------- - -cd SkoolOS -python3 -m venv env -source env/bin/activate -pip install -r requirements.txt - +Run the following commands in order to install SkoolOS: +:: + git clone https://gitlab.tjhsst.edu/understudyathon-2020/group-1/skoolos.git SkoolOS + cd SkoolOS + python3 -m venv env + source env/bin/activate + pip install -r requirements.txt