Releases: drop-project-edu/drop-project
Releases · drop-project-edu/drop-project
v0.9.9-beta.2
New Features
- Assignments can now include external assets such as images, dataset files and source files with examples. These assets must be stored in a folder named
public
within the root folder. In theinstructions.md
file, assets should be referenced using relative paths (ex:
)
Enhancements
- Significant reduction of the war file, from ~180 Mb to ~140 Mb.
- Better handling of zip submissions which include write-protected folders. This implied using a new library - instead of zip4j, it now uses commons-compress
- Improved encoding detection by using a new library: juniversalchardet. This should fix some ocasional errors parsing the AUTHORS.txt file.
- Expired personal tokens draw attention to this fact by showing a red "Expired" label
- API responds with a specific message when the token is expired to allow third-parties to give this information to the user
- Allow concurrent submissions, configurable through the admin dashboard
- Improve student api for submissions - it now responds with an ACCEPTED http code (202) while the submission is in the validation process
- Increase the max length of the git repository url
- Add support for tables in the instructions.md file (github flavored markdown)
Bug fixes
- Fixed README.md rendering issue in build report (#76)
- Fixed parsing of compilation errors on newer versions of kotlin
Dependency upgrades
- commons-io 2.14.0
- commons-compress 1.26.1
- h2: 2.2.224
v0.9.9-beta.1
New features
- There is a new option under the profile dropdown ("My History"), which shows all the submissions made by the student or by a group in which the student is involved, grouped by assignment.
- Assignments can expose public assets (support files for the students, images, etc..). Every file inside the public folder (in the assignment's root) will be exposed through the link:
<BASE_URL>/upload/<ASSIGNMENT_ID>/public/<FILE_NAME>
. This link can be included in the instructions.html1. - Assignment instructions can be defined in a markdown file (
instructions.md
), instead ofinstructions.html
. If the assignment has both files, Drop Project will chooseinstructions.md
. The markdown format is the one used by github. - It is now possible to define the visibility of an assignment: PUBLIC, ONLY_BY_LINK or PRIVATE. The last one restricts visibility only to authorized users. Notice that this visibility is from the submitter's (student) perspective.
Enhancements
- Activating an assignment now shows a modal dialog with a waiting spinner
- Major optimisation on the assignments list page (both current and archived)
- Minor improvements in the student's upload page
- Expose the "tagsStr" field to the teacher API (thanks @joao-marques-a22108693)
-
Always use relative links in the instructions file (html or md). Since the instructions are shown in the
<BASE_URL>/upload/<ASSIGNMENT_ID>
page, it is enough to usepublic/<FILE_NAME>
. ↩
v0.9.8
New features
- Integration with Moodle using LTI (with the help of this lib). It is now possible to configure Drop Project as an external tool in Moodle. When students/teachers click the link in Moodle, this will open Drop Project in another window, already authenticated with the same credentials they used in Moodle. Instructions on Moodle configuration can be found on the wiki.
- Plagiarism checking, using the JPlag library, available both for Java and Kotlin assignments. Accessible through a button on the assignment submissions page. It shows pairs of submissions with a similarity above a certain threshold (default: 50%). You can click on each pair, to see a side-by-side comparison of the code.
- Intellij plugin now available in the Jetbrains marketplace. This plugins lets students submit their solutions directly from Intellij (by @bernardovlbaltazar)
- Initial API for teachers, with webservices for getting all the submissions of a given assignment, download submissions, etc... (by @joao-marques-a22108693)
- Supports JUnit 5 tests
Enhancements
- Students build report now includes the submission count for that assignment
- Improved validations on AUTHORS.txt
- Students are now warned when they create test classes that don't follow the naming convention - #67
- Drop Project is now able to get meta-information about teacher test classes written in Kotlin (previously, it could only get this information for Java classes). This allows several features such as validating that the test methods have a timeout or providing a test matrix for Kotlin assignments
- For submissions through git, their corresponding commit hash is now stored in the database. This allows teachers to easily retrieve the exact snapshot of the code that was used on each submission, even if there were subsequent submissions
- Delete an assignment along with all its submissions, build reports, etc. This is a dangerous operation, therefore only accessible to administrators. It should be used only after exporting the assignment.
- Centralized docker image. There is now a single docker image (before, there were the drop-project-demo and drop-project-mysql images), which is configurable through spring profiles. The docker-compose.yml makes use of this feature, using the spring profile "mysql"
- There is a new webservice for getting the instructions of a given assignment by @bernardovlbaltazar in #45
- Optimization of the submissions report page, which shows all the submissions of a given assignment. For assignments with a large number of submissions, it was taking a long time to present the results. It should now be much faster.
Bug fixes
- Assignment creation without setting up access key was throwing an exception - #65
- Certain errors during the maven build should result in an execution failure, instead of presenting partial results
- Deleting assignments was not clearing the access list, by @bernardovlbaltazar in #52
- The webservice for getting the assignments for a given student was not excluding inactive assignments, by @bernardovlbaltazar in #44
- Deleting assignments with a large number of submissions was failing with a stackoverflow error.
Dependency upgrades
- Requires Java 17+
- Upgrade to zip4j 2.11.0
- Upgrade to maven-model 3.8.6
- Upgrade to maven-invoker 3.2.0
v0.9.7
New features
- Student history - you can now search by student id or student name (partial, with auto-complete) and get a complete history of all the submissions made by that student, in decreasing chronological order, grouped by assignment (thanks @brunompc for starting this feature)
- REST API (experimental). There is now a REST API for several Drop Project services. Still in the beginning, but the foundations are already in place. Associated with this, users can generate a personal token that will be used to authenticate the webservices. All the documentation is accessible at https:\\api-docs
Enhancements
- Improved information about mandatory tests. The assignment validation report now shows information about this and the student's build report also includes a warning when the submission is still failing mandatory tests.
- Improved information about overdue submissions, in several reports and when exporting the submissions list (CSV)
- Assignment info page now includes a link to go to the assignment submissions page and vice versa
- Build report page now includes a link to get the other submissions of that student/group (only visible to teachers). Also, the "submit new project" is now available both on the top and the bottom of the report.
- Improved security configuration - the list of urls accessible by the student role is clearer
- Async tasks execution timeout (e.g., maven execution) is now configurable through the administration dashboard
- Author names are automatically trimmed
Bug fixes
- After deleting submissions, some counters were not being properly updated. This also affected assignment removal for assignments whose submissions had been deleted
- Async task cancellation after timeout is now working properly
- In some cases, deleting assignments wouldn't remove its git folder
- On group assignments, only the student who submitted had a button to get the last build report. Now, the other group elements also have that button
- Certain images and links were still being referenced in html using relative paths
- Marking a submission as final wouldn't automatically unmark the previous final submission
v0.9.6
Bug fixes
- Deleting assignments no longer messes up the tag system
- Upgraded embedded git ssh client. Due to recent changes in github's authorization policy, drop project was no longer able to access repos using ssh
- Submissions are marked as failed when something goes wrong during the build (such as an exception) instead of being stuck in the "pending" state forever
Enhancements
- Docker images are now available for both amd64 and arm64
(Internal) Drop Project now uses Kotlin 1.5.34
v0.9.5
New features
- Support for internationalization. For now, only english and portuguese supported. Internationalization is defined on a per-instance basis, by setting a property on drop-project.properties
- Assignments can have mandatory tests, based on a suffix for the corresponding test name. For example, you can define a suffix "_MANDATORY", and all tests ending with that string will be considered mandatory. For now, this impacts the "export CSV" functionality, which not includes a new column with the number of mandatory tests each group passes.
- Assignments can be reconnected to the git repository. This is useful if you accidentally delete the access keys.
Improvements
- Improved "archived assignments" listing, with pagination and sorting
- Improved "current assignments": it puts active assignment at the top
- Better handling of errors during assignment import
- (Internal) Drop Project now uses Spring Boot 2.5.3 and Kotlin 1.5.21
Plus, several bug fixes.
v0.9.4
Besides many fixes and small improvements, it includes a new feature to export and import assignments (along with all its submissions)
0.9.3
Primarily bug fixes
0.9.2
add test for filtering assignments by tag + improve visual distinctio…