mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-01-04 00:05:28 -05:00
* feat: integrate the odin project * feat: add assignment to markdown parser * feat: add assignment logic * fix: doe not always show assignment block * fix: some other stuff * fix: introdiction to html and css questions * fix: remove assignments after first question * fix: update snapshots and tests * feat: create rest of HTML foundation course structure * feat: meta file * feat: add descriptions to 'html boiler plate' questions * feat: add description for 'working with text and list items' * fix: multiple logic issues * fix: make linter happy * feat: add description for 'links and images' questions * fix: add assignments to Joi schema * fix: tests * fix: schema * fix: add help category * fix: change to possessive wording * fix: set upcoming change to true in meta file * fix: spell unordered and ordered correctly * fix: switch order in meta * fix: spell boilerplate correctly * feat: add final project * chore: add more tests to the final project * fix: question spelling * Apply suggestions from code review Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com> * Apply suggestions from code review Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com> * Apply suggestions from code review Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com> * Apply suggestions from code review Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com> * Apply suggestions from code review Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com> * Apply suggestions from code review Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com> * fix: translation * Update client/i18n/locales/english/translations.json Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> * fix: create new challenge type * fix: get the new challenge type working and remove ol css * fix: translation location * fix: add challenge type to epic * fix: set correct video * fix: max challengeType number * fix: spelling/grammar errors in project * fix: check if anchor tags is empty * Apply suggestions from code review Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> * Update tools/challenge-parser/parser/plugins/add-video-question.js Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> * chore: multiple suggestions * chore: separate assignments into different plugin * Apply suggestions from code review Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com> * fix: dubble answer header after review * fix: issue with Gatsby hopefully * fix: add assignments to Gatsby's Challenge schema * Update curriculum/schema/challengeSchema.js Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com> Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>
109 lines
2.6 KiB
JavaScript
109 lines
2.6 KiB
JavaScript
const html = 0;
|
|
const js = 1;
|
|
const backend = 2;
|
|
const zipline = 3;
|
|
const frontEndProject = 3;
|
|
const backEndProject = 4;
|
|
const jsProject = 5;
|
|
const modern = 6;
|
|
const step = 7;
|
|
const quiz = 8;
|
|
const invalid = 9;
|
|
const pythonProject = 10;
|
|
const video = 11;
|
|
const codeAllyPractice = 12;
|
|
const codeAllyCert = 13;
|
|
const multifileCertProject = 14;
|
|
const theOdinProject = 15;
|
|
|
|
// individual exports
|
|
exports.backend = backend;
|
|
exports.frontEndProject = frontEndProject;
|
|
exports.backEndProject = backEndProject;
|
|
exports.pythonProject = pythonProject;
|
|
exports.codeAllyCert = codeAllyCert;
|
|
|
|
exports.challengeTypes = {
|
|
html,
|
|
js,
|
|
backend,
|
|
zipline,
|
|
frontEndProject,
|
|
backEndProject,
|
|
pythonProject,
|
|
jsProject,
|
|
modern,
|
|
step,
|
|
quiz,
|
|
invalid,
|
|
video,
|
|
codeAllyPractice,
|
|
codeAllyCert,
|
|
multifileCertProject,
|
|
theOdinProject
|
|
};
|
|
|
|
exports.isFinalProject = challengeType => {
|
|
if (typeof challengeType !== 'number')
|
|
throw Error('challengeType must be a number');
|
|
return (
|
|
challengeType === frontEndProject ||
|
|
challengeType === backEndProject ||
|
|
challengeType === jsProject ||
|
|
challengeType === pythonProject ||
|
|
challengeType === codeAllyCert ||
|
|
challengeType === multifileCertProject
|
|
);
|
|
};
|
|
|
|
exports.isCodeAllyPractice = challengeType => {
|
|
if (typeof challengeType !== 'number')
|
|
throw Error('challengeType must be a number');
|
|
return challengeType === codeAllyPractice;
|
|
};
|
|
|
|
// determine the component view for each challenge
|
|
exports.viewTypes = {
|
|
[html]: 'classic',
|
|
[js]: 'classic',
|
|
[jsProject]: 'classic',
|
|
[frontEndProject]: 'frontend',
|
|
[backEndProject]: 'backend',
|
|
[pythonProject]: 'frontend',
|
|
[modern]: 'modern',
|
|
[step]: 'step',
|
|
[quiz]: 'quiz',
|
|
[backend]: 'backend',
|
|
[video]: 'video',
|
|
[codeAllyPractice]: 'codeAlly',
|
|
[codeAllyCert]: 'codeAlly',
|
|
[multifileCertProject]: 'classic',
|
|
[theOdinProject]: 'odin'
|
|
};
|
|
|
|
// determine the type of submit function to use for the challenge on completion
|
|
exports.submitTypes = {
|
|
[html]: 'tests',
|
|
[js]: 'tests',
|
|
[jsProject]: 'tests',
|
|
// requires just a single url
|
|
// like codepen.com/my-project
|
|
[frontEndProject]: 'project.frontEnd',
|
|
// requires two urls
|
|
// a hosted URL where the app is running live
|
|
// project code url like GitHub
|
|
[backEndProject]: 'project.backEnd',
|
|
[pythonProject]: 'project.backEnd',
|
|
[step]: 'step',
|
|
[quiz]: 'quiz',
|
|
[backend]: 'backend',
|
|
[modern]: 'tests',
|
|
[video]: 'tests',
|
|
[codeAllyCert]: 'project.frontEnd',
|
|
[multifileCertProject]: 'tests',
|
|
[theOdinProject]: 'tests'
|
|
};
|
|
|
|
// determine which help forum questions should be posted to
|
|
exports.helpCategoryMap = require('./help-category-map.json');
|