Skip to content

Commit e5f500f

Browse files
authored
Merge pull request #104 from codeurjc-students/bugfixes
Bugfixes
2 parents be06f37 + a0e446e commit e5f500f

File tree

76 files changed

+12344
-980
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+12344
-980
lines changed

.travis.yml

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,43 @@
11
dist: trusty
22
branches:
33
only:
4-
- master
4+
- master
55
jobs:
66
include:
7-
- language: java
8-
jdk: oraclejdk11
9-
services:
10-
- docker
11-
before_script:
12-
- cd ./vscode4teaching-server/
13-
- chmod +x mvnw
14-
script:
15-
- "./mvnw clean package -B -q"
16-
after_script:
17-
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
18-
- docker build -t vscode4teaching/vscode4teaching:1.0.16 .
19-
- docker build -t vscode4teaching/vscode4teaching:latest .
20-
- docker push vscode4teaching/vscode4teaching:1.0.16
21-
- docker push vscode4teaching/vscode4teaching:latest
22-
- language: node_js
23-
os:
24-
- linux
25-
- osx
26-
node_js: 10.15.3
27-
install:
28-
- |
29-
if [ $TRAVIS_OS_NAME == "linux" ]; then
30-
export DISPLAY=':99.0'
31-
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
32-
fi
33-
before_script:
34-
- cd ./vscode4teaching-extension
35-
- npm install --save-dev
36-
script:
37-
- npm test
38-
cache:
39-
npm: false
7+
- language: java
8+
jdk: oraclejdk11
9+
services:
10+
- docker
11+
before_script:
12+
- cd ./vscode4teaching-server/
13+
- chmod +x mvnw
14+
script:
15+
- "./mvnw clean package -B -q"
16+
after_script:
17+
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
18+
- docker build -t vscode4teaching/vscode4teaching:2.0.1 .
19+
- docker build -t vscode4teaching/vscode4teaching:latest .
20+
- docker push vscode4teaching/vscode4teaching:2.0.1
21+
- docker push vscode4teaching/vscode4teaching:latest
22+
- language: node_js
23+
os:
24+
- linux
25+
- osx
26+
node_js: 10.15.3
27+
install:
28+
- |
29+
if [ $TRAVIS_OS_NAME == "linux" ]; then
30+
export DISPLAY=':99.0'
31+
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
32+
fi
33+
before_script:
34+
- cd ./vscode4teaching-extension
35+
- npm install --save-dev
36+
script:
37+
- npm test
38+
cache:
39+
npm: false
4040
env:
4141
global:
42-
secure: nI25Y4EHLUXmVAiK3JPPYe1ci60togbKDwvBkOEZCzkYcKjzbKH7q6RLisaFOOJyhJP1ffr5c/ME/mLOu3tgmGLq4hfl2k03wAFwLobsLzpuwQigFutByDIPndzFPkpZsV+wDv4nhChgTUVzC9lw2d1DvE2t3RYpA165V0PukrGx37CYfwe0+4IrZ7e59YPyiA33Op2sCvLugDg7qlM/qlpW0ifeoznfiN7C915/uwf93FBcbMW7jzKCuyIg0T/siR5SHTfrXfF+mhsSZi9XpZJmkokpjEz/KqE9Y1kYNTaPdoy0QtMKppd7ysCjJFUv0PNQ9DMTOvQrk8sFCQLCd3w5gXnDHYZIIGCjqf/9ZqNxAH6dLf98rUImbHim2f8jh+wXs4x8HipIZEWNDkUFfqPBaumCHmHNTDkolGPneBg5wnRqlnZ/7A/IrTytZIX+Cl8GmkWPleZ42947skS1JLHmnw1c9yoOgFKFS3QN93lIV3+zU1PMQTrwvoj5OQRKWj/fSW6Y3ZxaFaIFbEhupH16//Ml8gNPbRBXmEwfFaTChru6hl10qWiLcrZyL7eXXAfsfr9Wd9lZnB3ri0hNtJWVEXDomXfalMFWBon0tXykMd2/HYNiZK8EsPuTiIh5ISq6+5t1S4q818hrV+qp4Vk73qwTY5GAVoULSXjP7VQ=
42+
- secure: Xubi//N9TBKtampk7kO3V0rvuhbCIzVJ7ad2oJIoZGVUyCgmt9KdK46jfG2eSUYuvOMKg1xrXia0R0YC+VveoJPiRgCxqNIfqhb605XaY0SLRXAh2cThABs6q3IwFzoFVIG/8/xhZpqSngbystQxm8EflGhYdZYukijqtEEx78VrtuWaPRBcxGBFt8GaaLyzWvy8eY6Fzw4KZntZPHaalLt0t5k+Qt+Dt2AJuUb3YV1IaWyMQIeF0dKM2XLMpUISeRBVzPrqSmRxpbMyR+8iktPY2KYJFmeH1MD8H1imG/OVkHxSRiXsPXkZ8ueqXSzZ1R9cNIR6ZLKRIyo2sMvxRz5Kzr2fhcEtxCtyRW0sXFV4EG7lsUewn9E9MJ7e5OtnwZOKkcIvStydrwd3t9TH+pUdptgVGA+EdL/T4mcIjPkzYWPoUoLn1MYR3YYUezvqsJXrgl4HqQJSSLgaCEso/q/s5+IH+1y4xFYpLNo05+OhMWz0vNCBbPT02VC+6YTQwHAOcGNjOHDwgkwkg1KC46ZMkbdfm4bhNL1oWfAPynuHjNAfinzxc0kE/FataPXVEt7XX+dA3YdQL+KffqKdRLQqDgsQ1ZNvE+oZwJT1NMfIhlsreboBl1C9diQrxfLwaHBZjUXuNpbI6FK8W8iyQvBNfPWvcdKdMmrNdQV7268=
43+
- secure: nWKjhXkCD7qAjXAO//DYZXAcC5dDVtX+EgxQOAyCoyTfw0hdtxIHbn2iylpPlkd9iLObEkK1R30TWXsteZMHyBHJEgJM+YueuVqTUXKgS+EK6F0PebvgjyhZzfIZrTWOmhieHC/cXmDLeJbVkO+9++5KYGj0nYxkURqVXrguYlU7g+InbE8/raYjWsmpUVjhaEd245fyT2jmwSiaxiu8tWa9KuawsQeS/CVSNYAZaXfpLUk2ZOqOOxtR1TWfAv+4C84i6u+KhUS9FI6Li5MBMIZkU+npyx9gWw2EzmQf2ciqPYIGyRUe50tx5HLufZZ31RYae0jowuy7UpOQckNOG+hUxdzMCGX1pwh2mgKEKFL1XC8AsFo+rIt9eJhRaJN+hAQ8VtAhc8VzrdQhSn1CPgrT3ePO3wjyjo49MZjOrWd9q6r1DSXYQcOURFa2iUp+v5z4RFbAAyW/eAaEXlUr62ACQrQqZ5gGqchRYm2W2a5T+gua7ToyXO4yNzCt27hUv6c4kgtS7ATm1PKvD0/oDA6k6Roix4BJER38ONdp6sj8fmuEUfvTnS5QmVh8Zg4rf4htBGPriE/UFF2SSvj4kYj5ZKVFYeP4wGMhiGjADSp81LVdrSnGe7P7HoYEX3CGnukabV9+3b3eOXr+iy4e0UxZLsTp8Gs8T85Qqc6Kpc0=

README.md

Lines changed: 27 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 2019-VSCode4Teaching
22

3-
[![Build Status](https://travis-ci.org/codeurjc-students/2019-VSCode4Teaching.svg?branch=master)](https://travis-ci.org/codeurjc-students/2019-VSCode4Teaching)
3+
[![Build Status](https://api.travis-ci.com/codeurjc-students/2019-VSCode4Teaching.svg?branch=master)](https://app.travis-ci.com/github/codeurjc-students/2019-VSCode4Teaching)
44
[![Extension version](https://vsmarketplacebadge.apphb.com/version-short/VSCode4Teaching.vscode4teaching.svg)](https://marketplace.visualstudio.com/items?itemName=VSCode4Teaching.vscode4teaching)
55
[![Extension installs](https://vsmarketplacebadge.apphb.com/installs/VSCode4Teaching.vscode4teaching.svg)](https://marketplace.visualstudio.com/items?itemName=VSCode4Teaching.vscode4teaching)
66
VSCode extension for teaching.
@@ -14,72 +14,50 @@ Visit this [Medium blog](https://medium.com/@ivchicano) for updates on the devel
1414
- [Running, installing and development](README.md#running-installing-and-development)
1515
- [General Roadmap](README.md#general-roadmap)
1616

17+
## Introduction
18+
19+
The main features are:
20+
21+
- Teachers can create courses and exercises for the students.
22+
- Students can download these exercises and upload their updated files.
23+
- Teachers can download the students’ exercises to see their progress.
24+
25+
There are 2 user roles: Teacher and Student.
26+
27+
- Teachers are capable of creating, editing, deleting, adding and removing users from courses. These courses have exercises, which have an associated template (files that serve as the base of the exercise) and each student’s files. Teachers can also download the students’ files to review them.
28+
- Students can see these courses and exercises, download the templates and automatically upload their files to the server so that the teachers can see them.
29+
1730
## Common use case
1831

19-
1. Teacher runs the server, learning how to do it from [this link](/vscode4teaching-server/README.md)
20-
2. Teacher installs the VSCode 4 Teaching extension from the [marketplace](https://marketplace.visualstudio.com/items?itemName=VSCode4Teaching.vscode4teaching):
32+
1. Teacher installs the VSCode 4 Teaching extension from the [marketplace](https://marketplace.visualstudio.com/items?itemName=VSCode4Teaching.vscode4teaching):
2133
![Teacher downloads extension from Marketplace](readme_resources/marketplace_v4t.png)
22-
3. Teacher signs up from superuser account and logs in:
23-
![Teacher signs up using superuser account](readme_resources/superuser_teacher_signup.gif)
24-
4. Teacher creates a course and an exercise in that course:
34+
2. Ask another teacher to create you an account (you can contact micael.gallego@urjc.es for a teacher account)
35+
3. Teacher creates a course and adds exercises in that course (remember to use .gitignore to ignore the files you don't want to share!):
2536
![Teacher creates course and exercise](readme_resources/teacher_creates_exercise.gif)
26-
5. Teachers gets the code for sharing that course to his/her students:
37+
4. Teacher can create a code for sharing the course with the students. Students with this code can see the course and download the exercises. Teachers gets the code for sharing that course to his/her students:
2738
![Teacher gets sharing code for course](readme_resources/teacher_sharing_code.gif)
28-
6. Students install the extension and sign up:
39+
5. Students install the extension and sign up (if they don't have an account, only once):
2940
![Student signs up](readme_resources/student_signs_up.gif)
30-
7. Students use the code from the teacher to access the course:
41+
6. Students use the code from the teacher to access the course:
3142
![Student downloads course and exercise](readme_resources/student_gets_course.gif)
32-
8. Students start solving the exercise:
43+
7. Students start solving the exercise:
3344
![Students solving exercise](readme_resources/student_solving_exercise.gif)
34-
9. Meanwhile the teacher checks the students' progress:
45+
8. Meanwhile the teacher checks the students' progress using the dashboard. From the dashboard the teacher can open the last edited file of a student and see the difference between the template and that file:
3546
![Teacher checks progress](readme_resources/teacher_checks_progress.gif)
36-
10. When they finish the exercise, they mark it as finished:
47+
9. When they finish the exercise, they mark it as finished:
3748
![Student marks exercise as finished](readme_resources/student_finish_exercise.gif)
38-
11. Teacher starts checking on the students' solutions and adding comments:
49+
10. Teacher starts checking on the students' solutions and adding comments:
3950
![Teacher checks student solution and adds comment](readme_resources/teacher_creates_comment.gif)
40-
12. Student checks the comments and responds to them:
51+
11. Student checks the comments and responds to them:
4152
![Student replies to comment](readme_resources/student_replies_comment.gif)
4253

43-
## Introduction
44-
45-
The main features are:
46-
47-
- Teachers can create courses and exercises for the students.
48-
- Students can download these exercises and upload their updated files.
49-
- Teachers can download the students’ exercises to see their progress.
54+
## Running, installing and development
5055

5156
The release comes with 2 artifacts: a server backend and the extension.
52-
In the backend all the information is saved: courses, exercises, files… . The server is implemented as a REST API.
57+
In the backend all the information is saved: courses, exercises, files… The server is implemented as a REST API.
5358

5459
The extension is a frontend to interact with the server API.
5560

56-
There are 2 user roles: Teacher and Student.
57-
58-
- Teachers are capable of creating, editing, deleting, adding and removing users from courses. These courses have exercises, which have an associated template (files that serve as the base of the exercise) and each student’s files. Teachers can also download the students’ files to review them.
59-
- Students can see these courses and exercises, download the templates and automatically upload their files to the server so that the teachers can see them.
60-
61-
Animations showing the features:
62-
In the first animation we see the teacher creating a course and then creating an exercise (and selecting the files that will be set as the template of the exercise):
63-
![Teacher creates exercise](readme_resources/teacher1.gif)
64-
In the next animation, we see the student downloading this new exercise:
65-
![Student downloads exercise](readme_resources/student1.gif)
66-
On the next animation the student edits one of the files and saves it, triggering the automatic file upload so that the teacher can see it (notice the lower part of the screen how a message pops up indicating this upload):
67-
![Student edits files](readme_resources/student2.gif)
68-
On the next animation, we can see how the teacher selects the exercise previously created and downloads the edited files of the student that previously modified them:
69-
![Teacher sees student files](readme_resources/teacher2.gif)
70-
A teacher can check differences between a students exercise and the original template:
71-
![Teacher sees differences](readme_resources/diff.gif)
72-
A teacher puts a comment in a student file:
73-
![Teacher puts comment](readme_resources/teachercomment.gif)
74-
The student sees the comment and responds:
75-
![Student sees comment and responds](readme_resources/studentcomment.gif)
76-
Student finishes his exercise:
77-
![Student finishes exercise](readme_resources/finishexercise.gif)
78-
Teacher checks progress of all students in his dashboard:
79-
![Teacher checks his dashboard](readme_resources/dashboard.png)
80-
81-
## Running, installing and development
82-
8361
For information about the server click [HERE](/vscode4teaching-server/README.md).
8462
For information about the extension click [HERE](/vscode4teaching-extension/README.md).
8563

readme_resources/dashboard.png

-78.1 KB
Loading
209 KB
Loading

vscode4teaching-extension/.vscode/launch.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@
1111
"request": "launch",
1212
"runtimeExecutable": "${execPath}",
1313
"args": [
14-
"--disable-extensions",
1514
"--extensionDevelopmentPath=${workspaceFolder}"
1615
],
1716
"outFiles": [
1817
"${workspaceFolder}/out/**/*.js"
1918
],
20-
"preLaunchTask": "npm: watch"
19+
"preLaunchTask": "npm: build"
2120
},
2221
{
2322
"name": "Unit Tests",
@@ -27,7 +26,7 @@
2726
"args": [],
2827
"console": "integratedTerminal",
2928
"internalConsoleOptions": "neverOpen",
30-
"preLaunchTask": "npm: watch"
29+
"preLaunchTask": "npm: test-watch"
3130
}
3231
]
3332
}

vscode4teaching-extension/.vscode/settings.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@
88
},
99
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
1010
"typescript.tsc.autoDetect": "off",
11-
"typescript.tsdk": "node_modules\\typescript\\lib"
11+
"typescript.tsdk": "node_modules\\typescript\\lib",
12+
"files.watcherExclude": {
13+
"**/target": true
14+
}
1215
}

vscode4teaching-extension/.vscodeignore

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,26 @@ tslint_report.txt
1919
jest.config.js
2020
out/src/v4t/**
2121
test/**
22-
# node_modules/**
22+
node_modules/**
23+
# External modules in esbuilder and their dependencies
24+
# jszip
25+
!node_modules/jszip/**
26+
!node_modules/set-immediate-shim/**
27+
!node_modules/pako/**
28+
# ws
29+
!node_modules/ws/**
30+
# form-data
31+
!node_modules/form-data/**
32+
!node_modules/combined-stream/**
33+
!node_modules/delayed-stream/**
34+
!node_modules/mime-types/**
35+
!node_modules/mime-db/**
36+
!node_modules/asynckit/**
37+
2338
# !node_modules/axios/**
24-
# !node_modules/form-data/**
2539
# !node_modules/ignore/**
26-
# !node_modules/jszip/**
2740
# !node_modules/mkdirp/**
2841
# !node_modules/follow-redirects/**
2942
# !node_modules/asynckit/**
30-
# !node_modules/combined-stream/**
31-
# !node_modules/mime-types/**
3243
# !node_modules/lie/**
33-
# !node_modules/pako/**
34-
# !node_modules/readable-stream/**
35-
# !node_modules/set-immediate-shim/**
44+
# !node_modules/readable-stream/**

0 commit comments

Comments
 (0)