Skip to content

Commit b334057

Browse files
committed
chore: initial app with mock data
1 parent cc574a7 commit b334057

29 files changed

+793
-46
lines changed

.eslintrc.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
// eslint-disable-next-line import/no-extraneous-dependencies
22
const { createConfig } = require('@edx/frontend-build');
33

4-
module.exports = createConfig('eslint');
4+
module.exports = createConfig('eslint', {
5+
rules: {
6+
'import/no-unresolved': 'off',
7+
},
8+
});

package-lock.json

Lines changed: 87 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,15 @@
4545
"@fortawesome/react-fontawesome": "0.2.0",
4646
"core-js": "3.31.1",
4747
"prop-types": "15.8.1",
48+
"query-string": "^8.1.0",
4849
"react": "16.14.0",
4950
"react-dom": "16.14.0",
5051
"react-redux": "7.2.9",
5152
"react-router": "5.3.4",
5253
"react-router-dom": "5.3.4",
5354
"redux": "4.2.1",
55+
"redux-devtools-extension": "^2.13.9",
56+
"redux-logger": "^3.0.6",
5457
"regenerator-runtime": "0.13.11"
5558
},
5659
"devDependencies": {

src/data/services/lms/api.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { StrictDict } from 'utils';
2+
// import { locationId } from 'data/constants/app';
3+
// import { paramKeys } from './constants';
4+
// import urls from './urls';
5+
// import {
6+
// client,
7+
// get,
8+
// post,
9+
// stringifyUrl,
10+
// } from './utils';
11+
import fakeData from './fakeData';
12+
13+
/** *******************************************************************************
14+
* GET Actions
15+
******************************************************************************** */
16+
17+
/**
18+
* get('/api/assessment', { blockId })
19+
* @return {
20+
* title: (String) the display name
21+
* prompts: (Array) the prompts for a user to respond to
22+
* [ (HTML) a prompt for a user to respond to ]
23+
* base_asset_url: (URL) For when prompt has relative links for assets, need to
24+
* know where these are relative to, unless we have another way of inferring this
25+
* submission_config: (Object) How a student should be instructed to submit a response
26+
* ...
27+
* }
28+
*/
29+
const fetchAssessment = () => Promise.resolve(fakeData.assessment.assessmentText);
30+
31+
/** *******************************************************************************
32+
* get('/api/submission', { blockId })
33+
* @return {
34+
* team_info: (Object) Team info needed for team responses. Empty object for individual submissions
35+
* submission_status: (Object) Information about the submission status
36+
* submission: (Object) Submission information. Have structured to be the same between individual and
37+
* team submisisons as well as the object we use for submitting
38+
* }
39+
*/
40+
const fetchSubmission = () => Promise.resolve(fakeData.submission.teamAssessment);
41+
42+
export default StrictDict({
43+
fetchAssessment,
44+
fetchSubmission,
45+
});
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
/* eslint-disable camelcase */
2+
const submissionConfig = {
3+
start_datetime: '2023-04-14T20:00:00Z',
4+
end_datetime: '2023-04-14T20:00:00Z',
5+
text_response_config: {
6+
enabled: true,
7+
optional: true,
8+
// editor_type: (Enum) One of "text", "tinymce",
9+
editor_type: 'text',
10+
allow_latex_preview: true,
11+
},
12+
file_response_config: {
13+
enabled: true,
14+
optional: true,
15+
file_upload_limit: 1,
16+
allowed_extensions: ['pdf'],
17+
blocked_extensions: ['exe'],
18+
file_type_description: 'file type description',
19+
},
20+
teams_config: {
21+
enabled: true,
22+
teamset_name: 'teamset_name',
23+
},
24+
};
25+
26+
const leaderboardConfig = {
27+
enabled: true,
28+
number_of_entries: 1,
29+
};
30+
31+
const rubricConfig = {
32+
show_during_response: true,
33+
feedback_config: {
34+
description: 'Feedback description',
35+
default_text: 'Default feedback text',
36+
},
37+
criteria: [
38+
{
39+
name: 'Criterion name',
40+
description: 'Criterion description',
41+
feedback_enabled: true,
42+
feedback_required: true,
43+
options: [
44+
{
45+
name: 'Option name',
46+
points: 0,
47+
description: 'Option description',
48+
},
49+
],
50+
},
51+
],
52+
};
53+
54+
const assessmentSteps = {
55+
order: ['practice', 'self', 'peer', 'staff'],
56+
settings: {
57+
peer: {
58+
start_time: '2023-04-14T20:00:00Z',
59+
end_time: '2023-04-14T20:00:00Z',
60+
required: true,
61+
// Additional fields per step
62+
data: {
63+
min_number_to_grade: 0,
64+
min_number_to_be_graded_by: 0,
65+
enable_flexible_grading: true,
66+
},
67+
},
68+
staff: {
69+
required: true,
70+
},
71+
self: {
72+
start_time: '2023-04-14T20:00:00Z',
73+
end_time: '2023-04-14T20:00:00Z',
74+
required: true,
75+
},
76+
training: {
77+
required: true,
78+
data: {
79+
examples: [
80+
{
81+
response: 'response',
82+
criteria: [
83+
{
84+
name: 'criterion name',
85+
feedback: 'feedback',
86+
},
87+
],
88+
},
89+
],
90+
},
91+
},
92+
},
93+
};
94+
95+
export const createAssessment = ({
96+
title = 'Assessment title',
97+
prompts = ['<h1>ORA Prompt</h1>', '<p>ORA Prompt</p>'],
98+
base_asset_url = '/assets',
99+
submission_config = submissionConfig,
100+
assessment_steps = assessmentSteps,
101+
rubric = rubricConfig,
102+
leaderboard_config = leaderboardConfig,
103+
} = {}) => ({
104+
title,
105+
prompts,
106+
base_asset_url,
107+
submission_config,
108+
assessment_steps,
109+
rubric,
110+
leaderboard_config,
111+
});
112+
113+
export default {
114+
assessmentText: createAssessment(),
115+
assessmentTinyMCE: createAssessment({
116+
submission_config: {
117+
...submissionConfig,
118+
text_response_config: {
119+
...submissionConfig.text_response_config,
120+
editor_type: 'tinymce',
121+
},
122+
},
123+
}),
124+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import assessment from './assessment';
2+
import submission from './submission';
3+
4+
export default {
5+
assessment,
6+
submission,
7+
};

0 commit comments

Comments
 (0)