102 Commits

Author SHA1 Message Date
Huyen Nguyen
4558096cee fix(client,curriculum): add lang property to Challenge type (#64552) 2025-12-12 13:51:07 +01:00
Shaun Hamilton
33b1967a25 feat: save submission to db (#64450) 2025-12-12 08:31:25 +01:00
Huyen Nguyen
33325b9002 feat(client,challenge-parser): update fill-in-the-blank to support Chinese (#63741) 2025-11-25 11:02:22 -08:00
Oliver Eyton-Williams
ee911d7eac refactor: simplify sourcing of challenge nodes into gatsby (#63697) 2025-11-11 09:34:24 +01:00
Oliver Eyton-Williams
4ec96c1a0c feat: allow filtering by block and challengeId (#63640) 2025-11-10 11:29:21 +00:00
DanielRosa74
2432f5e9e4 feat(tools, client): add speaking tasks logic (#61906)
Co-authored-by: Huyen Nguyen <25715018+huyenltnguyen@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2025-11-07 19:29:21 +00:00
Huyen Nguyen
ced358eb5b refactor(client,curriculum): remove isComingSoon property (#63615) 2025-11-07 08:37:49 +05:30
Huyen Nguyen
26976b1d81 feat(curriculum): add content to the 4 new certs (#62659)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
2025-10-27 08:43:04 -05:00
Oliver Eyton-Williams
27a54624c3 refactor: blockType -> blockLabel (#62548)
Co-authored-by: Huyen Nguyen <25715018+huyenltnguyen@users.noreply.github.com>
2025-10-23 23:20:15 +05:30
Shaun Hamilton
16cbb4c24d dev(client): disable webpack console warnings (#62873)
Co-authored-by: Mrugesh Mohapatra <noreply@mrugesh.dev>
2025-10-17 11:05:42 -05:00
Shaun Hamilton
7c20027732 feat(client): add challenge interactive editor (#61805)
Co-authored-by: sembauke <semboot699@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2025-10-09 09:34:03 +05:30
Oliver Eyton-Williams
517b9f0576 fix(client): handle builds without all challenges (#61040)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2025-10-02 20:14:27 +05:30
Oliver Eyton-Williams
2b008e5aa8 feat: support afterAll hook in challenge tests (#61256) 2025-09-11 10:46:57 -05:00
Oliver Eyton-Williams
2a7b220a4f feat: support beforeEach and afterEach (#60921)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2025-07-07 10:46:09 +00:00
Huyen Nguyen
07e708890a fix(client): show donation modal on module completion (#57583)
Co-authored-by: ahmad abdolsaheb <ahmad.abdolsaheb@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
2025-04-09 13:32:02 -05:00
Oliver Eyton-Williams
1c08b1d65b fix: show project previews (#59568) 2025-04-03 15:53:02 +02:00
Tom
8ec9e5cc52 feat(challenge-parser): add transcript to challenge parser (#57967) 2025-01-09 07:17:22 +01:00
Oliver Eyton-Williams
d68cbdb2c4 refactor: remove release code (#57957) 2025-01-06 17:44:57 +01:00
Oliver Eyton-Williams
c9d2b47fc4 feat: prep b1 english for release (#57543) 2024-12-16 16:54:52 -06:00
Oliver Eyton-Williams
827b9e3ecd feat: use growthbook to determine next and previous challenges (#57435) 2024-12-12 18:27:41 +01:00
Oliver Eyton-Williams
3c48b8dd3f refactor(client): stop passing around unused data (#57432) 2024-12-06 14:53:18 +01:00
Oliver Eyton-Williams
4309617d07 feat(curriculum): add chapters and modules (#56795)
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
2024-10-31 09:29:16 -05:00
Huyen Nguyen
815f0291b6 feat(client, curriculum): add support for blockLayout property (#56101)
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
2024-10-15 20:47:21 +05:30
Tom
75401e13ee feat(client, challenge-parser): add explanation to challenges (#56472) 2024-10-04 14:59:50 -03:00
Oliver Eyton-Williams
ffe765dac1 refactor: quiz challenge question format (#56285) 2024-09-25 10:41:38 -07:00
Tom
c8f272d3c3 feat(challenge-parser/client): add quiz challenge type (#56058)
Co-authored-by: Jessica Wilkins <67210629+jdwilkin4@users.noreply.github.com>
2024-09-24 21:18:17 +05:30
Oliver Eyton-Williams
041a841995 refactor(client): simplify page creation (#55720) 2024-08-13 17:36:00 +02:00
Oliver Eyton-Williams
b9893bb4d6 feat(client): show demo on demand in labs (#55569)
Co-authored-by: Huyen Nguyen <25715018+huyenltnguyen@users.noreply.github.com>
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
2024-08-13 14:56:19 +02:00
Tom
9797bcf89a feat(learn): add blockType to block meta (#55568) 2024-08-09 08:40:58 -05:00
Oliver Eyton-Williams
97279f5bc6 refactor(client): clean up gatsby-node (#55640)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2024-08-02 10:29:44 +02:00
Tom
c8c0618e1e chore: remove audioPath (#55213) 2024-06-18 14:14:52 -07:00
Huyen Nguyen
d3481989a9 chore: remove react-bootstrap (#54289) 2024-04-03 10:39:03 -07:00
Tom
a31f6637d7 feat(client/curriculum): add dialogue animations (#52543) 2023-12-15 16:29:45 +01:00
Tom
ddc459e71e feat(client/curriculum): add upcoming english superblock and challenge types (#52201) 2023-11-09 10:08:51 +01:00
Oliver Eyton-Williams
e149b09087 feat(curriculum): control loop-protect (#51542) 2023-09-19 08:51:43 -07:00
Oliver Eyton-Williams
391fc2e34d refactor: create shared workspace (#51454) 2023-09-07 23:06:01 +05:30
Tom
9a1895d2e3 feat(client/api): validate ms users (#51372)
Co-authored-by: Muhammed Mustafa <MuhammedElruby@gmail.com>
2023-08-26 07:57:02 -05:00
Tom
c7a3c6ce52 feat(client/curriculum): add prerequisites to take exam (#50767)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2023-07-06 13:44:05 +03:00
Oliver Eyton-Williams
13110a9665 fix(client): handle final project submission (#50818)
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
2023-07-04 22:04:45 +02:00
Tom
167a8e7638 refactor: remove dasherize (#50620) 2023-06-07 23:28:56 -07:00
Oliver Eyton-Williams
b5bcf16349 fix: blocknameify no longer (#49997)
Remove `blocknameify` function, and adjust curriculum meta as needed
2023-04-10 21:21:00 +05:30
Sem Bauke
df53c7778c feat: integrate The Odin Project (#48617)
* 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>
2023-01-19 14:55:26 +02:00
Oliver Eyton-Williams
538e7c787b feat: improve file insertion (#45942) 2022-05-14 10:06:26 +05:30
Ismail Tlemcani
2846df2b66 fix: fix util import statement (#45104)
Co-authored-by: IsmailTlemcani <ismail.tlemcani@gmail.com>
2022-02-24 08:16:47 -08:00
Oliver Eyton-Williams
cacc4eacd7 fix: handle the sorting of transformed files (#44724)
* fix: handle the sorting of transformed files

We can't use the ext property, since that is transformed, but the
history is maintained.

* test: make solutions polyVinyls for sorting

* refactor: inline prepareChallenge

* refactor: make solutions polys in getChallenges

* fix: convert each solution to a poly

* fix: skip empty solutions

* fix: get challenge file history in client

* refactor: stop calling isPoly from the client

* fix: remove debug console.log

* refactor: remove unnecessary sorting step
2022-01-24 10:42:27 -08:00
Nicholas Carrigan (he/him)
8614db7a32 feat: enable new curriculum (#44183)
* feat: use legacy flag

chore: reorder challenges

fix: linter

revert: server change

feat: unblock new editor

fix: proper order

fix: 0-based order

fix: broke the order

feat: move tribute certification to its own block

feat: split the old projects block into 4

fix: put all blocks in order

chore: add intro text

refactor: use block, not blockName in query

fix: project progress indicator

* fix: reorder new challenges/certs

* fix: reorder legacy challenges

* fix: reintroduce legacy certs

* feat: add showNewCurriculum flag to env

* chore: forgot sample.env

* feat: use feature flag for display

* fix: rename meta + dirs to match new blocks

* fix: add new blocks to help-category-map

* fix: update completion-modal for new GQL schema

* test: duplicate title/id errors ->  warnings

* fix: update completion-modal to new GQL schema Mk2

* chore: re-order metas (again)

* fix: revert super-block-intro changes

The intro needs to show both legacy and new content.  We need to decide
which pages are created, rather than than what a page shows when
rendered.

* feat: move upcoming curriculum into own superblock

* fix: handle one certification with two superBlocks

* fix: remove duplicated intros

* fix: remove duplicate projects from /settings

* fix: drop 'two' from Responsive Web Design Two

* chore: rename slug suffix from two to v2

* feat: control display of new curriculum

* feat: control project paths shown on /settings

* fix: use new project order for /settings

This does mean that /settings will change before the release, but I
don't think it's serious.  All the projects are there, just not in the
legacy order.

* fix: claim/show cert button

* chore: remove isLegacy

Since we have legacy superblocks, we don't currently need individual
blocks to be legacy

* test: fix utils.test

* fix: verifyCanClaim needs certification

If Shaun removes the cert claim cards, maybe we can remove this entirely

* fix: add hasEditableBoundaries flags where needed

* chore: remove isUpcomingChange

* chore: v2 -> 22

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-12-20 12:36:31 -06:00
Tom
580a51f7a7 fix: simplify mobile layout tabs (#44431)
* fix: simplify mobile layout tabs

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>


Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-12-15 13:52:44 +00:00
Oliver Eyton-Williams
3b560deab6 refactor: stop spreading challenge over the node (#44499)
* refactor: stop spreading challenge over the node

Instead of creating a Gatsby node with id of challenge.id, we create a
single node field that has all the challenge data.

While this makes the GraphQL queries more verbose, it means we're free
to create multiple nodes with the same challenge.id.

* test: update time-line test for new GQL schema

* test: update mocks with new GQL schema
2021-12-14 12:11:20 -06:00
Tom
1c5d136add feat(client): add notes tab to project based curriculum (#44247)
* feat: add notes tab to project based curriculum

* feat: add console key to i18n

* feat: add reset to i18n

* fix: use translations in action-row

* fix: use hasEditableBoundaries as check for when to display instructions/editor-tabs

* fix: clean up notes components and use prism formatting

* feat: add notes to docs/how-to-work-on-challenges

* revert: unused code

* fix: lint errors?

* fix: lint errors

* fix: add notes to graphql schema

* fix: add notes to challenge schema

* fix: only display notes on project based

* fix: add env data back to mobile layout

* fix: prettify

* revert: notes

* fix: hide notes on mobile for non project based

* rename: switchDisplayTab -> togglePane

* revert: hasEditableBoundaries check back to projectBasedChallenge check
2021-12-09 18:42:03 +00:00
Oliver Eyton-Williams
bb7893db8e feat: show project preview (#43967)
* feat: add data for preview to challengeMeta

* feat: allow creation of project preview frames

* feat: make project preview data available for frame

* refactor: simplify reducer

* feat: show project preview for first challenge

* feat: show project preview on MultiFile challenges

* test: check for presence/absence of preview modal

* fix: simplify previewProject saga

* test: uncomment project preview test

* fix: increase modal size + change modal title

* modal-footer

* feat: adjust preview size

* fix: remove margin, padding, and line-height for preview of finished projects

* Revert "fix: remove margin, padding, and line-height for preview of finished projects"

This reverts commit 0db11a0819.

* fix: remove margin on all previews

* refactor: use closeModal('projectPreview') for clarity

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* fix: get started -> start coding!

* fix: update closeModal type

Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
Co-authored-by: Ahmad Abdolsaheb <ahmad.abdolsaheb@gmail.com>
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2021-11-29 18:30:28 +00:00