Git Product home page Git Product logo

doubtfire-web's Introduction

Doubtfire Logo

Doubtfire Web CI

A modern, lightweight learning management system.

๐Ÿ›  Migration Status: In Development

Doubtfire web migration from AngularJS/Coffeescript to Angular/Typescript, including refactoring all components, is currently in development.

See the progress of component migration below.

Migration Progress

SUMMARY:

73 / 132 components migrated

MIGRATED:

  • ./src/app/home/splash-screen/splash-screen.component.ts
  • ./src/app/home/states/home/home.component.ts
  • ./src/app/tasks/task-submission-history/task-submission-history.component.ts
  • ./src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.ts
  • ./src/app/tasks/task-comments-viewer/extension-comment/extension-comment.component.ts
  • ./src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-player.component.ts
  • ./src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-recorder/intelligent-discussion-recorder.component.ts
  • ./src/app/tasks/task-comments-viewer/pdf-image-comment/pdf-image-comment.component.ts
  • ./src/app/tasks/task-comments-viewer/comment-bubble-action/comment-bubble-action.component.ts
  • ./src/app/tasks/task-comments-viewer/task-comments-viewer.component.ts
  • ./src/app/tasks/task-comment-composer/task-comment-composer.component.ts
  • ./src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.ts
  • ./src/app/projects/states/dashboard/directives/student-task-list/create-portfolio-task-list-item/create-portfolio-task-list-item.component.ts
  • ./src/app/projects/states/dashboard/directives/student-task-list/task-list-item/task-list-item.component.ts
  • ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-assessment-card/task-assessment-card.component.ts
  • ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-similarity-view/task-similarity-view.component.ts
  • ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-submission-card/task-submission-card.component.ts
  • ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-due-card/task-due-card.component.ts
  • ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-description-card/task-description-card.component.ts
  • ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-status-card/task-status-card.component.ts
  • ./src/app/projects/states/dashboard/directives/task-dashboard/task-dashboard.component.ts
  • ./src/app/admin/institution-settings/overseer-images/overseer-image-list.component.ts
  • ./src/app/admin/institution-settings/institution-settings.component.ts
  • ./src/app/admin/institution-settings/campuses/campus-list/campus-list.component.ts
  • ./src/app/admin/institution-settings/activity-type-list/activity-type-list.component.ts
  • ./src/app/admin/tii-action-log/tii-action-log.component.ts
  • ./src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts
  • ./src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.ts
  • ./src/app/eula/accept-eula/accept-eula.component.ts
  • ./src/app/welcome/welcome.component.ts
  • ./src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.ts
  • ./src/app/units/states/tasks/inbox/inbox.component.ts
  • ./src/app/units/states/edit/directives/unit-students-editor/student-tutorial-select/student-tutorial-select.component.ts
  • ./src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.ts
  • ./src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.ts
  • ./src/app/units/states/edit/directives/unit-tutorials-manager/unit-tutorials-manager.component.ts
  • ./src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.ts
  • ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.ts
  • ./src/app/units/states/analytics/unit-analytics-route.component.ts
  • ./src/app/common/footer/footer.component.ts
  • ./src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.ts
  • ./src/app/common/audio-recorder/audio/microphone-tester/microphone-tester.component.ts
  • ./src/app/common/audio-player/audio-player.component.ts
  • ./src/app/common/edit-profile-form/edit-profile-form.component.ts
  • ./src/app/common/file-drop/file-drop.component.ts
  • ./src/app/common/modals/extension-modal/extension-modal.component.ts
  • ./src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.component.ts
  • ./src/app/common/modals/calendar-modal/calendar-modal.component.ts
  • ./src/app/common/modals/task-assessment-modal/task-assessment-modal.component.ts
  • ./src/app/common/pdf-viewer/pdf-viewer.component.ts
  • ./src/app/common/obect-select/object-select.component.ts
  • ./src/app/common/hero-sidebar/hero-sidebar.component.ts
  • ./src/app/common/project-progress-bar/project-progress-bar.component.ts
  • ./src/app/common/f-chip/f-chip.component.ts
  • ./src/app/common/status-icon/status-icon.component.ts
  • ./src/app/common/user-badge/user-badge.component.ts
  • ./src/app/common/file-viewer/file-viewer.component.ts
  • ./src/app/common/user-icon/user-icon.component.ts
  • ./src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.ts
  • ./src/app/common/header/header.component.ts
  • ./src/app/common/header/task-dropdown/task-dropdown.component.ts
  • ./src/app/common/header/unit-dropdown/unit-dropdown.component.ts
  • ./src/app/common/services/alert.service.ts
  • ./src/app/sessions/states/sign-in/sign-in.component.ts
  • ./src/app/account/edit-profile/edit-profile.component.ts

TODO:

  • ./src/app/visualisations/alignment-bar-chart.coffee
  • ./src/app/visualisations/summary-task-status-scatter.coffee
  • ./src/app/visualisations/target-grade-pie-chart.coffee
  • ./src/app/visualisations/achievement-custom-bar-chart.coffee
  • ./src/app/visualisations/student-task-status-pie-chart.coffee
  • ./src/app/visualisations/alignment-bullet-chart.coffee
  • ./src/app/visualisations/progress-burndown-chart.coffee
  • ./src/app/visualisations/task-status-pie-chart.coffee
  • ./src/app/visualisations/achievement-box-plot.coffee
  • ./src/app/visualisations/task-completion-box-plot.coffee
  • ./src/app/visualisations/visualisations.coffee
  • ./src/app/tasks/task-status-selector/task-status-selector.coffee
  • ./src/app/tasks/tasks.coffee
  • ./src/app/tasks/modals/modals.coffee
  • ./src/app/tasks/modals/upload-submission-modal/upload-submission-modal.coffee
  • ./src/app/tasks/modals/grade-task-modal/grade-task-modal.coffee
  • ./src/app/tasks/task-definition-selector/task-definition-selector.coffee
  • ./src/app/tasks/project-tasks-list/project-tasks-list.coffee
  • ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-rater/task-ilo-alignment-rater.coffee
  • ./src/app/tasks/task-ilo-alignment/modals/task-ilo-alignment-modal/task-ilo-alignment-modal.coffee
  • ./src/app/tasks/task-ilo-alignment/modals/task-ilo-alignment.coffee
  • ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-editor/task-ilo-alignment-editor.coffee
  • ./src/app/tasks/task-ilo-alignment/task-ilo-alignment.coffee
  • ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-viewer/task-ilo-alignment-viewer.coffee
  • ./src/app/config/privacy-policy/privacy-policy.coffee
  • ./src/app/config/config.coffee
  • ./src/app/config/runtime/runtime.coffee
  • ./src/app/config/root-controller/root-controller.coffee
  • ./src/app/config/local-storage/local-storage.coffee
  • ./src/app/config/routing/routing.coffee
  • ./src/app/config/vendor-dependencies/vendor-dependencies.coffee
  • ./src/app/config/analytics/analytics.coffee
  • ./src/app/config/debug/debug.coffee
  • ./src/app/projects/projects.coffee
  • ./src/app/projects/project-progress-dashboard/project-progress-dashboard.coffee
  • ./src/app/projects/states/states.coffee
  • ./src/app/projects/states/all/directives/directives.coffee
  • ./src/app/projects/states/all/directives/all-projects-list/all-projects-list.coffee
  • ./src/app/projects/states/all/all.coffee
  • ./src/app/projects/states/groups/groups.coffee
  • ./src/app/projects/states/feedback/feedback.coffee
  • ./src/app/projects/states/dashboard/directives/directives.coffee
  • ./src/app/projects/states/dashboard/directives/progress-dashboard/progress-dashboard.coffee
  • ./src/app/projects/states/dashboard/directives/student-task-list/student-task-list.coffee
  • ./src/app/projects/states/dashboard/directives/task-dashboard/directives/directives.coffee
  • ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-outcomes-card/task-outcomes-card.coffee
  • ./src/app/projects/states/dashboard/directives/task-dashboard/task-dashboard.coffee
  • ./src/app/projects/states/dashboard/dashboard.coffee
  • ./src/app/projects/states/outcomes/outcomes.coffee
  • ./src/app/projects/states/portfolio/directives/portfolio-review-step/portfolio-review-step.coffee
  • ./src/app/projects/states/portfolio/directives/directives.coffee
  • ./src/app/projects/states/portfolio/directives/portfolio-learning-summary-report-step/portfolio-learning-summary-report-step.coffee
  • ./src/app/projects/states/portfolio/directives/portfolio-add-extra-files-step/portfolio-add-extra-files-step.coffee
  • ./src/app/projects/states/portfolio/directives/portfolio-grade-select-step/portfolio-grade-select-step.coffee
  • ./src/app/projects/states/portfolio/directives/portfolio-welcome-step/portfolio-welcome-step.coffee
  • ./src/app/projects/states/portfolio/directives/portfolio-tasks-step/portfolio-tasks-step.coffee
  • ./src/app/projects/states/portfolio/portfolio.coffee
  • ./src/app/projects/states/index/index.coffee
  • ./src/app/projects/states/tutorials/tutorials.coffee
  • ./src/app/projects/project-outcome-alignment/project-outcome-alignment.coffee
  • ./src/app/admin/modals/modals.coffee
  • ./src/app/admin/modals/create-unit-modal/create-unit-modal.coffee
  • ./src/app/admin/states/states.coffee
  • ./src/app/admin/states/units/units.coffee
  • ./src/app/admin/states/users/users.coffee
  • ./src/app/admin/admin.coffee
  • ./src/app/groups/group-selector/group-selector.coffee
  • ./src/app/groups/group-set-manager/group-set-manager.coffee
  • ./src/app/groups/group-member-contribution-assigner/group-member-contribution-assigner.coffee
  • ./src/app/groups/group-member-list/group-member-list.coffee
  • ./src/app/groups/group-set-selector/group-set-selector.coffee
  • ./src/app/groups/tutor-group-manager/tutor-group-manager.coffee
  • ./src/app/groups/groups.coffee
  • ./src/app/units/modals/unit-student-enrolment-modal/unit-student-enrolment-modal.coffee
  • ./src/app/units/modals/modals.coffee
  • ./src/app/units/modals/unit-ilo-edit-modal/unit-ilo-edit-modal.coffee
  • ./src/app/units/units.coffee
  • ./src/app/units/states/states.coffee
  • ./src/app/units/states/tasks/inbox/inbox.coffee
  • ./src/app/units/states/tasks/tasks.coffee
  • ./src/app/units/states/tasks/viewer/directives/directives.coffee
  • ./src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.coffee
  • ./src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.coffee
  • ./src/app/units/states/tasks/viewer/directives/unit-task-list/unit-task-list.coffee
  • ./src/app/units/states/tasks/viewer/viewer.coffee
  • ./src/app/units/states/tasks/definition/definition.coffee
  • ./src/app/units/states/portfolios/portfolios.coffee
  • ./src/app/units/states/all/directives/all-units-list/all-units-list.coffee
  • ./src/app/units/states/all/directives/directives.coffee
  • ./src/app/units/states/all/all.coffee
  • ./src/app/units/states/groups/groups.coffee
  • ./src/app/units/states/edit/directives/directives.coffee
  • ./src/app/units/states/edit/directives/unit-group-set-editor/unit-group-set-editor.coffee
  • ./src/app/units/states/edit/directives/unit-details-editor/unit-details-editor.coffee
  • ./src/app/units/states/edit/directives/unit-staff-editor/unit-staff-editor.coffee
  • ./src/app/units/states/edit/directives/unit-ilo-editor/unit-ilo-editor.coffee
  • ./src/app/units/states/edit/edit.coffee
  • ./src/app/units/states/rollover/directives/directives.coffee
  • ./src/app/units/states/rollover/directives/unit-dates-selector/unit-dates-selector.coffee
  • ./src/app/units/states/rollover/rollover.coffee
  • ./src/app/units/states/index/index.coffee
  • ./src/app/units/states/students-list/students-list.coffee
  • ./src/app/units/states/analytics/analytics.coffee
  • ./src/app/common/filters/filters.coffee
  • ./src/app/common/content-editable/content-editable.coffee
  • ./src/app/common/alert-list/alert-list.coffee
  • ./src/app/common/modals/confirmation-modal/confirmation-modal.coffee
  • ./src/app/common/modals/comments-modal/comments-modal.coffee
  • ./src/app/common/modals/modals.coffee
  • ./src/app/common/modals/csv-result-modal/csv-result-modal.coffee
  • ./src/app/common/modals/progress-modal/progress-modal.coffee
  • ./src/app/common/grade-icon/grade-icon.coffee
  • ./src/app/common/file-uploader/file-uploader.coffee
  • ./src/app/common/common.coffee
  • ./src/app/common/services/grade-service.coffee
  • ./src/app/common/services/date-service.coffee
  • ./src/app/common/services/alert-service.coffee
  • ./src/app/common/services/media-service.coffee
  • ./src/app/common/services/recorder-service.coffee
  • ./src/app/common/services/outcome-service.coffee
  • ./src/app/common/services/listener-service.coffee
  • ./src/app/common/services/analytics-service.coffee
  • ./src/app/common/services/services.coffee
  • ./src/app/sessions/auth/http-auth-injector.coffee
  • ./src/app/sessions/sessions.coffee
  • ./src/app/errors/errors.coffee
  • ./src/app/errors/states/states.coffee
  • ./src/app/errors/states/unauthorised/unauthorised.coffee
  • ./src/app/errors/states/not-found/not-found.coffee
  • ./src/app/errors/states/timeout/timeout.coffee

Table of Contents

  1. Getting Started
  2. Resources
  3. Contributing
  4. Deployment
  5. License

Getting Started

If you will be using Docker, follow the instructions there.

Before you get started, make sure you have the Doubtfire API up and running. You will need to do this before continuing.

First, clone the web repository, and change to the root directory:

git clone https://github.com/doubtfire-lms/doubtfire-web.git
cd ./doubtfire-web

You can automate the installation process by running the automated setup script:

./setup.sh

Or, you can continue following the below steps to manually install doubtfire-web.

Install Node.js either by downloading it and installing it manually, or via Homebrew on OS X:

brew install node

or by using apt-get on Linux:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install nodejs

Install Ruby SASS:

gem install sass

If gem fails, you should read the Doubtfire API README to install ruby. If you are not using rbenv, e.g., using Docker instead, you may need to prepend sudo to the above commands to have root write access.

If using rbenv, rehash to ensure each of the gems are on your PATH:

rbenv rehash

Install all node dependencies using npm, as well as grunt-cli globally:

npm install

Note: You may need to install grunt-cli globally in Linux using sudo.

Lastly, to compile and run a watch server and web server, use npm start:

npm start

This will automatically run the angular 1 grunt watch, and the angular 7 ng serve.

You can then navigate to the Doubtfire web interface at http://localhost:8000.

Deployment

To compile the front-end, ensure doubtfire-api is placed as a sibling directory to doubtfire-web, then run:

cd /path/to/repos
ls
doubtfire-api    doubtfire-web
cd ./doubtfire-api
grunt deploy

You may prefix this command with the following environment variables:

  • DF_API_URL - the URL of the API (e.g., https://doubtfire.com/api). This will default to window.location.host if not set and dynamically generate a URL.
  • DF_EXTERNAL_NAME - a new name that removes references to the Doubtfire name should you so want to not use such its original name (๐Ÿ˜ข).

Resources

Doubtfire Web is an Angular application built using Bootstrap. It uses many Open Source libraries, which you can read up on:

Contributing

Refer to CONTRIBUTING.md

License

Licensed under GNU Affero General Public License (AGPL) v3

doubtfire-web's People

Contributors

akshatbajaj avatar alexcu avatar angusmorton avatar avdongle avatar baradghimire avatar benphilip1991 avatar emilecross avatar hellola avatar jakerenzella avatar jdamatopoulos avatar johnvnpham avatar kishan02patel avatar kumar-ish avatar leechxdd avatar lorenzoleesolano avatar lst97 avatar macite avatar mattvzdeakin avatar mslavnenko avatar ohtake avatar oscarfzs avatar pseudo-su avatar rayguo-ergou avatar real-stanyan avatar roboromeo1 avatar rorygolledge avatar sushanthkannan avatar tancnle avatar tejaswinimannuru24 avatar ublefo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

doubtfire-web's Issues

Auto complete using keyboard does not activate the button to add students to a group

When typing in a student's name in Unit Admin > Groups > 'add members' search box, using the keyboard to hit down enter will fill the search bar value text with the full name and enable the button to add, however that 'add' button will not function, possibly due to a input validation flag not being set when using a keyboard to populate instead of a mouse click.

Querying Markdown Engine and Output From Comment Box Content

Maybe this query is better suited for the API over the front-end. and unfortunately I can't test out my concerns at this moment, as I am not enrolled in any units. But I am wondering whether it might be a good idea to either fix, or if not fix, then at least highlight somewhere some of the potential limitation(s) of the markdown engine used to interpret the text typed into the assignment comment box.

One of the main issues I have noticed is that nested ordered and unordered lists are not always rendered properly. They are if you use tabs but using single-space indentation seems unreliable (not sure if it makes any difference using different indentation levels of either two or four single spaces).

Graph using incorrect values.

The graphs shown are for someone who has submitted all work, therefore To Submit should be at zero, with To Complete at 18%

The graphs show both To Submit and To Complete at 27%

image
image

"Assessment Information" is retained if I transfer to task with no assessment information.

Conditions:

  • Student view
  • Not Started tasks

Issue:
Selected task with "Assessment Information" box and then transferring to a different task retains the "Assessment Information" box.

Review:
If done the other way around, "Assessment Information" box is not shown.

Procedure:
[For issue]
Student Home View -> Project 2 task -> Working with Enumerations
issue1_part1

issue1_part2

issue1_part3

[issue after review]
Student Home View -> Working with Enumerations -> Project 2 task

issue1_part1

issue1_part4

issue1_part5

Guest user role

We need to include a guest user role that enables people to be added as a "tutor" without the ability to change student tasks.

Extension requests should not appear in task inbox until there is a submission

Currently the inbox can get spammed with notifications after many student's apply for extensions, even though there are no submissions. They will stay in the inbox until responded, forcing the tutor to make an action. Without a submission

If there's a submission which is late, and there's a request then we can place it in the inbox. If the submission is early then it shouldn't matter anyway. If the task is marked while a pending request exists then we should delete the request as it wasn't needed.

Thoughts @macite ?

Include ability to pin tasks in inbox

Currently there is no way to pin a task to the inbox to deal with it later. This means that some tasks can "disappear" before they are addressed if the browser is refreshed.

Task sheet upload fails - unknown cause

Somehow... changing the abbreviation of a task in the task admin can cause the uploader to fail.

In my case I was swapping 4.1P and 4.2P:

  • Altered task 4.1P to be 4.4C
  • Altered task 4.2P to be 4.1P
  • Altered task 4.4C to be 4.2C

After this all uploads to task sheets from 4.1 onward failed with an internal server error. However nothing was logged for these in the backend - not sure what is going wrong here but it is in the web app side.

pasted_image_26_7_18__10_17_am

Notification emails - editable templates

I was not aware of the fact that the system sends emails to the students "on behalf of the unit chair". The unit chair should have control over this. In particular, the types of the emails being sent automatically as well as their contents.

Email notification for change in status

When marker updates status (comment, Complete or Resubmit), the email notification needs to be sent in the email. Currently, have to check the site regularly for the updates.

Issues with portfolio grading page

This may be related to the fact the unit has group tasks, the grade review tab is missing target grade information in the template, etc

Student view: Not able to download submission

Once the submission a student sends gets marked by a tutor and its status changes to Complete, there's a Download Submission button available in the Submission pane.

I though a student might want to view the submitted work while it's still being processed (Ready For Feedback status) -- just to make sure the artefact they sent is what they meant to share with us.

Currently it's not the case.

Ability to request enrolement

Include an interface that lets students indicate they want to be enrolled in a unit. This could then provide a provisional (non-active) enrolment and an email to the unit convenor. The convenor could then activate the enrolment (from a link within the email).

Needs further thought, but would help empower students who enrol after units are setup.

trim whitespaces from fields imported from csv files

I didn't have time to double-check that but it seems that when I imported the csv file with task spec, the leading and trailing whitespaces in some of the fields were not trimmed - they should be

I could have a hand-made task list containing:

Task 1.2D,     1.2D,      Report Generation     ,1,2,false,5,false,80,[],"","[{""key"":""file0"",""name"":"".Rmd file"",""type"":""code""},{""key"":""file1"",""name"":"".html file"",""type"":""document""}]",1,Mon,11,Fri,11,Fri,Wrk01

Agreement Tab When Submitting Assignments Not Always Accessible

There is a strange issue occurring when I submit assignments for units using the DF platform, which I am finding difficult to trace. It doesn't happen with most other assignments but I could not submit some of my test 1 week 4 work for SIT102 last week, as I could not get past the plagiarism agreement section. The same thing also happened with my learning plan for SIT192.

I am a screen reader user and I have noticed that the next button sometimes becomes unavailable / dimmed when trying to submit work, even if all relevant files have been successfully uploaded. As previously stated, it only happens on rare occasions but it appears to be impossible to move from the agreement section to be able to do a final upload.

Batch task upload does not work

group_set does not have a default value, hence when you try to batch upload a mix of individual and group tasks, it breaks in a non-graceful way. The erroneous rows have their submission requirements, grade and deadlines distorted or removed. Task grades do not seem to upload correctly either, but this may be a side effect of the error thrown by the individual work type of tasks.

Sample file below

name	abbreviation	description	weighting	target_grade	restrict_status_updates	max_quality_pts	is_graded	plagiarism_warn_pct	plagiarism_checks	group_set	upload_requirements	start_week	start_day	target_week	target_day	due_week	due_day
Accounts and Access	1.1P	Create your accounts for the various tools, consolidate them as a team and submit these account details so you can gain access to your Project Management Tools.	16	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Accounts","type":"document"}]	0	Mon	0	Sun	1	Sun
Supervisor Meeting Week 2	2.1P	Before your meeting, submit the agenda for your first supervisor meeting.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Supervisor-Meeting-Week-2","type":"document"}]	1	Mon	1	Sun	2	Sun
Scope Handover Review	2.2P	Review the handover materials for your project, prepare and submit the first iteration of your scope document for this trimester. If there are no handover materials from a previous trimester, prepare and submit the scope of work for this project.	32	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Handover-Review","type":"document"}]	1	Mon	1	Sun	2	Sun
Intellectual Property Agreement	2.3P	Sign your individual IP Agreement, collate it as a team and submit.	32	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-IP-Agreement","type":"document"}]	1	Mon	1	Sun	2	Sun
Grading Agreement	3.1P	Sign your Grading Agreement indicating your target grade and your plan on how you intend to achieve it for this unit.	32	0	FALSE	0	TRUE	50	[]		[{"key":"file0","name":"SIT782-Grading-Agreement","type":"document"}]	2	Mon	2	Sun	3	Sun
Status Update Week 3	3.2P	Submit your team status update for your supervisor to review.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Team-Worklog-2","type":"document"}]	2	Mon	2	Sun	3	Sun
Supervisor Meeting Week 4	4.1P	Before your meeting, submit the agenda for this supervisor meeting and the minutes from your previous meeting.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Supervisor-Meeting-Week-4","type":"document"}]	3	Mon	3	Sun	4	Sun
Sprint 1 Increment	4.2P	Prepare and submit your Sprint Increment.	32	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Sprint-Incre-1","type":"document"}]	3	Mon	3	Sun	4	Sun
Individual Retro - Sprint 1	5.1P	Individual retrospective for what you have done in Sprint 1.	4	0	FALSE	0	TRUE	50	[]		[{"key":"file0","name":"SIT782-Indiv-Retro-Sprint-1","type":"document"}]	4	Mon	4	Sun	5	Sun
Status Update Week 5	5.2P	Submit your team status update for your supervisor to review.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Status-Update-Week-5","type":"document"}]	4	Mon	4	Sun	5	Sun
Course 2 Reflection: Projects, Diversity and Career Development	5.3D	Reflect on the lessons learnt in the interview videos about Projects, Diversity and Career Development, then offer more advice in a 250 word article from what you have experienced thus far so we can add it on FutureLearn.	16	2	FALSE	0	TRUE	50	[]		[{"key":"file0","name":"SIT782-Reflection-Projects","type":"document"}]	4	Mon	4	Sun	5	Sun
Supervisor Meeting Week 6	6.1P	Before your meeting, submit the agenda for this supervisor meeting and the minutes from your previous meeting.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Supervisor-Meeting-Week-6","type":"document"}]	6	Mon	6	Sun	7	Sun
Sprint 2 Increment	6.2P	Prepare and submit your Sprint Increment.	32	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Sprint-Incre-2","type":"document"}]	6	Mon	6	Sun	7	Sun
Project Milestone Report	6.3P	Milestone report for the project that compares progress made with the proposed phases of work in the project scope.	32	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Milestone-Report","type":"document"}]	6	Mon	6	Sun	7	Sun
Individual Retro - Sprint 2	7.1P	Individual retrospective for what you have done in Sprint 2.	4	0	FALSE	0	TRUE	50	[]		[{"key":"file0","name":"SIT782-Indiv-Retro-Sprint-2","type":"code"}]	7	Mon	7	Sun	8	Sun
Status Update Week 7	7.2P	Submit your team status update for your supervisor to review.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Status-Update-Week-7","type":"document"}]	7	Mon	7	Sun	8	Sun
Supervisor Meeting Week 8	8.1P	Before your meeting, submit the agenda for this supervisor meeting and the minutes from your previous meeting.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Supervisor-Meeting-Week-8","type":"document"}]	8	Mon	8	Sun	9	Sun
Sprint 3 Increment	8.2P	Prepare and submit your Sprint Increment.	32	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Sprint-Incre-3","type":"document"}]	8	Mon	8	Sun	9	Sun
Course 2 Reflection: Your Discipline	8.3D	Reflect on the lessons learnt in the videos and interviews about your discipline. Tell us in a 250 word article what advice you were able to implement in this project and describe how you were able to do it.	16	2	FALSE	0	TRUE	50	[]		[{"key":"file0","name":"SIT782-Reflection-Discipline","type":"document"}]	9	Mon	9	Sun	10	Sun
Draft Learning Summary	9.1P	The first draft of your summary report that prefaces your portfolio. Your instructions to creation your portfolio are also within.	64	0	FALSE	0	FALSE	50	[]		[{"key":"file0","name":"SIT782-Learning-Summary","type":"document"}]	9	Mon	9	Sun	10	Sun
Status Update Week 9	9.2P	Submit your team status update for your supervisor to review.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Status-Update-Week-9","type":"document"}]	9	Mon	9	Sun	10	Sun
Supervisor Meeting Week 10	10.1P	Before your meeting, submit the agenda for this supervisor meeting and the minutes from your previous meeting.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Supervisor-Meeting-Week-10","type":"document"}]	10	Mon	10	Sun	11	Sun
Sprint 4 Increment (Artefact Handover)	10.2P	Prepare and submit your Sprint Increment.	32	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Sprint-Incre-4","type":"document"}]	10	Mon	10	Sun	11	Sun
Unit Retro	10.3HD	Write a 750-word article and tell us where it should be added in FutureLearn to share a lesson you have learnt with the next generation.	16	3	FALSE	0	TRUE	50	[]		[{"key":"file0","name":"SIT782-Unit-Retro","type":"document"}]	10	Mon	10	Sun	11	Sun
Project Handover, Status Update and Supervisor Meeting	11.1P	Before your meeting, submit the agenda for this supervisor meeting and the minutes from your previous meeting.	8	0	FALSE	0	FALSE	80	[]	Group Work	[{"key":"file0","name":"SIT782-Handover","type":"document"}]	11	Mon	11	Sun	12	Sun

Edit: Cleaned up sample file.

Keyboard Navigation in Multi-line Edit Field for Comment Box Not Accessible to Screen Readers Outside of Assignment Submission.

This should not be very difficult to fix. Comments can be added easily when submitting an assignment but when submitting a general comment i.e. when conversing with a tutor, it seems a cross-browser issue that one categorically cannot navigate through the multiline editable text field by character, word, line, sentence, or paragraph when using an assistive technology solution such as a screen reader. The only way around this is to copy and paste the text in from elsewhere. Consequently, my current SIT102 portfolio (which at least still gave me an HD) has all these typos everywhere in the comments and some of the markdown didn't render properly.

Maybe the type of text field used needs to be re-examined.

Small Typo on Status Reasons

When a task is marked as discuss/demonstrate, there is a small typo within the status reason. See below:

Why do I have this status?
Your work looks good and your tutor beleives it is complete.

Occurs at src/app/common/services/task-service.coffee lines 179 and 183.

Issue with the [link]

There seems to be issue opening link when we use the link in a word and convert to PDF then submit in OnTrack, for example [link]

Implement emoji and snippet picker.

When typing : in the comment box, an emoji picker should appear. So :thumbsup: would insert a ๐Ÿ‘ .

We can then use this system to include snippets:

So :indentation can insert a paragraph about code formatting practices etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.