Skip to content

5.5.0

Compare
Choose a tag to compare
@hirokiterashima hirokiterashima released this 24 Oct 17:39
· 5087 commits to master since this release

Table of Contents

Release Schedule

5.4.1 Released May 5, 2017 [[Announcement|https://groups.google.com/forum/#!topic/wise-dev/8YBomj01Irw]]

5.5 Released June 29, 2017 [[Announcement|https://groups.google.com/forum/#!topic/wise-dev/Ykt74gu77Gs]]

Download

[[Downloads are available at wise5.org|http://wise5.org]]

General Notes

In this release, the Authoring Tool got a makeover and now looks and behaves similar to the Student and Teacher tools. Many UI/UX improvements were made to the Grade-by-Workgroup and Student Progress views based on user feedback. We added an "Achievement Framework" which will allow creation and tracking of milestones and other achievements and "Rubrics and Teaching Tips" for teachers. We also updated the primary theme colors for the Classroom Monitor and Authoring Tool so that colorblind users can better distinguish between the Classroom Monitor, Authoring Tool, and Student VLE colors. Lastly, we started removing unused database tables and simplifying the backend codebase.

This release requires Tomcat 8.0.x and and java 7+ to work with WebSockets. WISE@Berkeley is using Tomcat 8.5.x with java 1.8+ (as of June 2017)

[[WISE5 Goals|https://docs.google.com/document/d/1N0Yj3KJH4sKELc9ZgXv6IgFWR3d_A3o9cOEv4xFVags/edit]] and
[[WISE5 Design Doc and Notes|https://github.com/WISE-Community/WISE/wiki/WISE5-Design-Documentation-and-Notes]]

Major Goals

  1. Redesign AT, make it easier for people to use
  2. CM grade-by-student view design improvement
  3. Add support for outside scoring systems besides CRater (python/R)

Major Changes

Student VLE

  • Updated the node numbering for projects so that it handles numbering steps in a branch path better
  • Discussion Component: Implemented the ability for teachers to delete a discussion post. Teachers can also undo the delete to make a post visible again.
  • Display the step and component rubrics and teaching tips in preview mode.

Classroom Monitor

  • Updated the studentProgress view visuals and UI; split the table into individual students; added student filter and sorting
  • Implemented the One Workgroup Per Row Export
  • Implemented the raw JSON export.
  • Fixed the calculation for step completion percentage to take branching into consideration. Fixes #857.
  • Added component filtering to grade-by-workgroup view to reduce scrolling
  • Made workgroup headers sticky when scrolling
  • Added view to create milestones
  • Moved the pause student screens control in the Classroom Monitor to a drop-down menu accessed via a lock icon on the top bar and added toggles for each period

Authoring Tool

  • Redesigned to match look and feel of student and teacher tools, with top bar and navigation buttons
  • Modified WISELink so authors can link to a component inside a node. #827
  • Improved branch authoring by adding default values and fixing bugs related to constraints.

Portal

  • Added support for each WISE instance to specify their own project metadata, including different subjects, via admin's settings page.
  • Sharing a run with another teacher now automatically shares the project. #861.
  • Removed modules and curnits tables and put existing value into projects.modulePath field.
  • Removed project_metadata table and put existing value into projects.metadata field.
  • Stability improvements to the translation tool

Minor Changes

Student VLE

  • Added the latest component state timestamp to the student status #814
  • Concept Map Component: Removed the 'Reset' and 'Add to Notebook' buttons in the grading view
  • Draw Component: Implemented importing Concept Map work as a background image to a Draw component
  • Draw Component: When students click the reset button, it now repopulates the background. #845
  • Graph Component: Made it easier for students to create data points on top of other data points. Reduced the number of times setupGraph() is called because it was being called unnecessarily too many times. Fixed a problem with the deleteKeyPressed event being fired too many times.
  • Graph Component: By default, try to set the active series to a series that is editable. We now display an alert message to the student when they try to add a point to an uneditable series.
  • Graph Component: default to have locked axes.
  • Added the submit counter to the student work for some components. Also added the max submit field for those components.
  • Made some minor changes to the Base64 to PNG replacer to try to minimize memory usage in student data.
  • Fixed a problem with infinite looping when calculating node numbers in a project that has a loop.
  • Components: Added the ability to overwrite old Embedded model component states by specifying the component state id in the component state that is saved to the server. Also added the nodeId parameter to all the componentStudentDataChanged events that are fired.
  • Components: Made importing work from another component save a new revision even if the student doesn't change the imported work.
  • Added a print button to the Notebook Report tools

Classroom Monitor/Grading Tool

  • We now calculate the project max score by adding up the scores for a single path instead of all the paths. Made changes to make sure the max score for a student and the max score for a project only look at active nodes and components. #824
  • Hide components with no student work by default.
  • Changed the hasNewWork() function name to checkHasNewWork() to prevent a minor bug where the function was being overwritten.
  • Added a print button to the Notebook Report tools
  • Events Export: Added a column for the pretty printed representation of the event. Currently only branchPathTaken events contain values in this column.
  • Added server disconnection message to Classroom Monitor

Authoring Tool

  • Added a project Advanced authoring view and project level script file.
  • Fixed a problem that was causing getBranches() to be called a lot of times when the user moved their mouse.
  • Indent steps in branch paths #820
  • Made the edit project JSON view save on blur.
  • Added choosing of asset images for Multiple Choice and Match component choices.
  • Label Component: Added easier authoring for starter labels.

Portal

  • Retrieve latest global WISE version and recent commits to GitHub asynchronously. #807, #830
  • Permission changes: only users with admin_role can give/revoke admin_roles. Nobody can revoke admin user's role or change admin user's password.
  • Protect inputs from dependency injection in forgot account forms for teachers and students
  • Added bottom css style to tinycarousel pager to make sure users can click on down-arrow when there are > 10 projects of the same subject.
  • Added wiseInstanceName and wiseInstanceVersion to request when getting latest global WISE version. Fixes #715.
  • In change password form, display who should type their password if user is not changing their own password. Fixes #833.
  • Updated table index names so they're more precise; no more duplicate index names across tables. This was causing warnings in HSQLDB.

Misc.

  • Updated dependencies: Spring 4.3.4 -> 4.3.8, SpringSecurity 4.2.0 -> 4.2.2, Hibernate 5.0.10 -> 5.2.10, HSQLDB 2.3.4 -> 2.4.0, HttpClient 4.5.2 -> 4.5.3.
  • Removed MySQL5ISAMDialect. Instead we do this by setting hibernate.dialect.storage_engine=myisam in wise.properties.
  • wise.sh: changed initial hibernate.hbm2ddl.auto value from "create" to "create-only", so no table dropping would occur. Previously we were dropping tables that didn't exist and this was throwing (harmless) errors.
  • Removed ehcache-core dependency, as this is now included in hibernate-ehcache.
  • Added slf4j-api and slf4j-log4j12 dependencies.
  • Added OpenResponse and Multiple Choice E2E tests. Added more to CM E2E tests.
  • Traditional Chinese translations by @ntnuwise and Frank
  • Added Greek (locale "el") language support and translations by folks in Greece

Updating Instructions

(for people upgrading from v5.4)

  1. Edit wise.properties. Open wise.properties, and

    1a. change

    "hibernate.dialect=org.wise.util.MySQL5MyISAMDialect"

    to

    "hibernate.dialect=org.hibernate.dialect.MySQL5Dialect"

    1b. add "hibernate.dialect.storage_engine=innodb"

    1c. add "c3p0.initialPoolSize=10"

See wise_sample.properties for example.

(in wise.properties, if using MySQL):
...
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect <- this used to be org.wise.util.MySQL5MyISAMDialect 
...

(in wise.properties, if using HSQLDB):
...
hibernate.dialect=org.hibernate.dialect.HSQLDialect  <- this used to be org.wise.util.MySQL5MyISAMDialect
...


(in wise.properties, if using MySQL or HSQLDB):
...
c3p0.initialPoolSize=10        <- add this line
...
hibernate.dialect.storage_engine=innodb               <- add this line
...
  1. Create new achievements table
create table achievements (
    id int unsigned not null auto_increment,
    runId bigint null,
    workgroupId bigint null,
    achievementId varchar(64) not null,
    type varchar(32) not null,
    data text not null,
    achievementTime datetime not null,
    primary key (id),
    index runIdIndex (runId),
    index workgroupIdIndex (workgroupId)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

alter table achievements
    add constraint achievements_to_runs_fk
    foreign key (runId)
    references runs (id);
	
alter table achievements
    add constraint achievements_to_workgroups_fk
    foreign key (workgroupId)
    references wiseworkgroups (id);	
  1. Add projects.modulePath column and insert existing values in modules.moduleUrl into projects.modulePath.
alter table `projects` add column `modulePath` varchar(255) not null after `projecttype`;

update projects p
    inner join modules m
      on p.curnit_fk = m.id
set p.modulePath = m.moduleUrl
where p.id >= 1;

(Optional: drop projects.curnit_fk column)

alter table `projects` 
drop foreign key `FKC479187A7F08E576`;

alter table `projects` 
drop column `curnit_fk`,
drop index `FKC479187A7F08E576` ;

(Optional: drop modules and curnits tables)

drop table modules;
drop table curnits;
  1. Add portal.projectMetadataSettings column and insert default value
ALTER TABLE `portal` ADD COLUMN `projectMetadataSettings` TEXT NULL AFTER `settings`;

UPDATE `portal` SET `projectMetadataSettings`='{"fields":[{"name":"Title","key":"title","type":"input"},{"name":"Summary","key":"summary","type":"textarea"},{"name":"Language","key":"language","type":"radio","choices":["English","Chinese (Simplified)","Chinese (Traditional)","Dutch","German","Greek","Hebrew","Japanese","Korean","Portuguese","Spanish","Thai","Turkish"]},{"name":"Subject","key":"subject","type":"radio","choices":["Life Science","Physical Science","Earth Science","General Science","Biology","Chemistry","Physics","Other"]},{"name":"Time Required to Complete Project","key":"time","type":"input"},{"name":"Supported Devices","key":"supportedDevices","type":"checkbox","choices":["PC","Tablet"]}],"i18n":{"lifeScience":{"en":"Life Science","ja":"ライフサイエンス"},"earthScience":{"en":"Earth Science","ja":"地球科学"},"physicalScience":{"en":"Physical Science","ja":"物理科学","es":"ciencia física"}}}' WHERE `id`='1';

If you see this error when running the UPDATE portal query above

ERROR 1366 (HY000): Incorrect string value: '\xE3\x83\xA9\xE3\x82\xA4...' for column 'projectMetadataSettings' at row 1

You may need to run this query

ALTER TABLE portal CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

and then try running the UPDATE portal query above again.

  1. Merge values in project_metadata columns to projects.metadata field as JSON string
    Add metadata column:
alter table `projects` add column `metadata` mediumtext null after `owner_fk`;

Make sure that you don't have any projects with a null name, or the script will fail.

select * from projects where name is null;
# if you see any projects with a null name, set it appropriately.

Run the "mergetProjectMetadata" Java method (in AdminUtilsController) to put existing metadata in project_metadata table into the new projects.metadata column as JSON string

Log into WISE as admin -> click on MergeProjectMetadata link. This will run the mergetProjectMetadata method and import existing project_metadata values into projects.metadata column.

(Optional: drop project_metadata table)

drop table project_metadata;
  1. Rename index names to remove duplicates
ALTER TABLE `annotations` 
DROP INDEX `runIdIndex` ,
ADD INDEX `annotationsRunIdIndex` (`runId` ASC);

ALTER TABLE `annotations` 
DROP INDEX `toWorkgroupIdIndex` ,
ADD INDEX `annotationsToWorkgroupIdIndex` (`toWorkgroupId` ASC);

ALTER TABLE `events` 
DROP INDEX `runIdIndex` ,
ADD INDEX `eventsRunIdIndex` (`runId` ASC);

ALTER TABLE `events` 
DROP INDEX `workgroupIdIndex` ,
ADD INDEX `eventsWorkgroupIdIndex` (`workgroupId` ASC);

ALTER TABLE `ideabasket` 
DROP INDEX `runIdAndWorkgroupIdIndex` ,
ADD INDEX `ideabasketRunIdAndWorkgroupIdIndex` (`runId` ASC, `workgroupId` ASC);

ALTER TABLE `node` 
DROP INDEX `runIdIndex` ,
ADD INDEX `nodeRunIdIndex` (`runId` ASC);

ALTER TABLE `notebookItems` 
DROP INDEX `runIdIndex` ,
ADD INDEX `notebookItemsRunIdIndex` (`runId` ASC);

ALTER TABLE `notebookItems` 
DROP INDEX `workgroupIdIndex` ,
ADD INDEX `notebookItemsWorkgroupIdIndex` (`workgroupId` ASC);

ALTER TABLE `notification` 
DROP INDEX `runIdIndex` ,
ADD INDEX `notificationRunIdIndex` (`runId` ASC);

ALTER TABLE `notification` 
DROP INDEX `toWorkgroupIdIndex` ,
ADD INDEX `notificationToWorkgroupIdIndex` (`toWorkgroupId` ASC);

ALTER TABLE `notification` 
DROP INDEX `fromWorkgroupIdIndex` ,
ADD INDEX `notificationFromWorkgroupIdIndex` (`fromWorkgroupId` ASC);

ALTER TABLE `runstatus` 
DROP INDEX `runIdIndex` ,
ADD INDEX `runstatusRunIdIndex` (`runId` ASC);

ALTER TABLE `studentAssets` 
DROP INDEX `runIdIndex` ,
ADD INDEX `studentAssetsRunIdIndex` (`runId` ASC);

ALTER TABLE `studentAssets` 
DROP INDEX `workgroupIdIndex` ,
ADD INDEX `studentAssetsWorkgroupIdIndex` (`workgroupId` ASC);

ALTER TABLE `studentstatus` 
DROP INDEX `runIdIndex` ,
ADD INDEX `studentstatusRunIdIndex` (`runId` ASC);

ALTER TABLE `studentstatus` 
DROP INDEX `workgroupIdIndex` ,
ADD INDEX `studentstatusWorkgroupIdIndex` (`workgroupId` ASC);

ALTER TABLE `studentWork` 
DROP INDEX `runIdIndex` ,
ADD INDEX `studentWorkRunIdIndex` (`runId` ASC);

ALTER TABLE `studentWork` 
DROP INDEX `workgroupIdIndex` ,
ADD INDEX `studentWorkWorkgroupIdIndex` (`workgroupId` ASC);

ALTER TABLE `userinfo` 
DROP INDEX `workgroupIdIndex` ,
ADD INDEX `userinfoWorkgroupIdIndex` (`workgroupId` ASC);