Commit Graph

100 Commits

Author SHA1 Message Date
Huyen Nguyen
33325b9002
feat(client,challenge-parser): update fill-in-the-blank to support Chinese (#63741)
Some checks failed
i18n - Build Validation / Validate i18n Builds (22) (push) Has been cancelled
CI - Node.js / Lint (22) (push) Has been cancelled
CI - Node.js / Build (22) (push) Has been cancelled
CI - Node.js / Test (22) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (22) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 22) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 22) (push) Has been cancelled
i18n - Upload Client UI / Client (push) Has been cancelled
i18n - Upload Curriculum / Learn (push) Has been cancelled
CD - Docker - DOCR Cleanup Container Images / Delete Old Images (learn-api, dev) (push) Has been cancelled
CD - Docker - DOCR Cleanup Container Images / Delete Old Images (learn-api, org) (push) Has been cancelled
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 <[email protected]>
Co-authored-by: Oliver Eyton-Williams <[email protected]>
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 <[email protected]>
Co-authored-by: moT01 <[email protected]>
2025-10-27 08:43:04 -05:00
Oliver Eyton-Williams
27a54624c3
refactor: blockType -> blockLabel (#62548)
Co-authored-by: Huyen Nguyen <[email protected]>
2025-10-23 23:20:15 +05:30
Shaun Hamilton
16cbb4c24d
dev(client): disable webpack console warnings (#62873)
Co-authored-by: Mrugesh Mohapatra <[email protected]>
2025-10-17 11:05:42 -05:00
Shaun Hamilton
7c20027732
feat(client): add challenge interactive editor (#61805)
Co-authored-by: sembauke <[email protected]>
Co-authored-by: Oliver Eyton-Williams <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Co-authored-by: Oliver Eyton-Williams <[email protected]>
Co-authored-by: Tom <[email protected]>
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 <[email protected]>
2024-10-31 09:29:16 -05:00
Huyen Nguyen
815f0291b6
feat(client, curriculum): add support for blockLayout property (#56101)
Co-authored-by: Tom <[email protected]>
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 <[email protected]>
2024-09-24 21:18:17 +05:30
Oliver Eyton-Williams
041a841995
refactor(client): simplify page creation (#55720)
Some checks failed
i18n - Build Validation / Validate i18n Builds (20.x) (push) Waiting to run
i18n - Download Client UI / Client (push) Has been cancelled
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 <[email protected]>
Co-authored-by: Tom <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
2023-07-06 13:44:05 +03:00
Oliver Eyton-Williams
13110a9665
fix(client): handle final project submission (#50818)
Co-authored-by: Naomi Carrigan <[email protected]>
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 <[email protected]>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <[email protected]>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <[email protected]>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <[email protected]>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <[email protected]>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <[email protected]>

* fix: translation

* Update client/i18n/locales/english/translations.json

Co-authored-by: Oliver Eyton-Williams <[email protected]>

* 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 <[email protected]>

* Update tools/challenge-parser/parser/plugins/add-video-question.js

Co-authored-by: Oliver Eyton-Williams <[email protected]>

* chore: multiple suggestions

* chore: separate assignments into different plugin

* Apply suggestions from code review

Co-authored-by: Kristofer Koishigawa <[email protected]>

* 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 <[email protected]>

Co-authored-by: Naomi Carrigan <[email protected]>
Co-authored-by: Oliver Eyton-Williams <[email protected]>
Co-authored-by: Kristofer Koishigawa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>


Co-authored-by: Oliver Eyton-Williams <[email protected]>
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 <[email protected]>

* fix: get started -> start coding!

* fix: update closeModal type

Co-authored-by: moT01 <[email protected]>
Co-authored-by: Ahmad Abdolsaheb <[email protected]>
Co-authored-by: Shaun Hamilton <[email protected]>
2021-11-29 18:30:28 +00:00
Shaun Hamilton
59f17f237b
refactor: files{} -> challengeFiles[], and key -> fileKey (#43023)
* fix(client): fix client

* fix propType and add comment

* revert user.json prettification

* slight type refactor and payload correction

Co-authored-by: Oliver Eyton-Williams <[email protected]>

* update ChallengeFile type imports

* add cypress test for code-storage

* update test and storage epic

* fix Shaun's tired brain's logic

* refactor with suggestions

Co-authored-by: Oliver Eyton-Williams <[email protected]>

* update codeReset

* increate cypress timeout because firefox is slow

* remove unused import to make linter happy

* use focus on editor

Co-authored-by: Oliver Eyton-Williams <[email protected]>

* use more specific seletor for cypress editor test

* account for silly null challengeFiles

Co-authored-by: Oliver Eyton-Williams <[email protected]>

Co-authored-by: Oliver Eyton-Williams <[email protected]>
2021-08-12 20:48:28 +02:00
Ahmad Abdolsaheb
b623c340a9
feat(client): add google pay (#43117)
* feat: initial button setup client

* feat: rename walletsButton to .tsx

* chore: typescriptize wallet component

* chore: re-add keys to config, env, etc + check in gatsby-node

* feat: refactor donate form and wallet component

* feat(client): set labels correctly

* chore: add stripe package back to server

* chore: add stripe back to allowed paths

* chore: copy donate.js code from PR #41924

* feat: attempt to make back end work

* feat: make redux work

* feat: clean up

* feat: hokify

* feat: add error handling

* fix: back-end should be working

* fix: type errors

* fix: clean up back-end

* feat:addd styles

* feat: connect the client to the api

* feat: display wallets button everywhere

* test: add stripe key for cypress action

* test: fix for cypress tests

* test: cypress tests again

* test: maybe?

* test: more

* test: more

* test: more

* test

* askdfjasklfj

* fix: tests finally?

* revert: remove space from cypress yaml action

* remove logs

Co-authored-by: moT01 <[email protected]>
Co-authored-by: Oliver Eyton-Williams <[email protected]>
2021-08-08 23:22:25 +03:00