Skip to content
Anthony Halim edited this page Jun 11, 2020 · 39 revisions

Source Academy Cadet-frontend

Welcome to the cadet-frontend wiki! This is the homepage!

Developer Guide

For developer guide, please refer to this page.

Projects

The list of projects are shown below.

Policy on Issues and PRs

Open Issues and PRs should be actionable. When we decide to postpone an Issue or PR, it can be closed, but should remain marked with the label _postponed. After a major milestone (a semester) we will re-visit postponed Issues and PRs and re-open them.

Mission Authoring

We propose to keep "Mission Control" out of the deployed Source Academy. Instead we shall use an Academy version from a dedicated branch. This branch can be: https://github.com/source-academy/cadet-frontend/tree/mission-control-upgrade

Story XML files

We specify that another private repo is dedicated to hosting Story XML files for student engagement in the Source Academy game. Like for Assessment XML files, the cadet backend checks the private story repository regularly (e.g. hourly) and picks up any new ones.

Like assessment repos, the story repo contains folders (such as xml or stories_of_act_2), and each of these folders contain Story XML files. The file names and folder names are ignored. What matters is the content of the files regarding mission id and type, and not the file names.

Assessments can refer to stories in the XML, using the optional attribute story in the element TASK. There is only one such element in each assessment XML. Example from mission-M2A.xml:

<TASK access="public" kind="mission" coverimage="https://i.imgur.com/amJe5Bb.png" story="mission-2" number="M2A" startdate="2019-01-16T00:00+08" duedate="2019-01-25T23:59+08" title="Rune Trials">

The story attribute in the TASK element of assessment XML files refers to the ID of the story. The ID of the story is specified in the story XML files using the attribute id in the STORY element. There is only one such element in each story XML. Example from mission-2.story.xml:

<STORY id="mission-2" type="mission" number="2" dependencies="spaceship">

The single source of truth is the content of the files, regarding IDs, and not the file names.

Note that the STORY element has an attribute type and not kind as in TASK elements of Assessment XML files. This makes sense, because Story XMLs can also have type normal, for example in the spaceship.story.xml, which does not refer to any particular assessment.