feat: daily coding challenges#1597
Merged
Sembauke merged 7 commits intoJul 8, 2025
Merged
Conversation
…at/daily-challenge
This reverts commit 7fbf03a.
huyenltnguyen
commented
Jul 7, 2025
| buildDivider(), | ||
| DrawerTile( | ||
| key: const Key('daily-challenges'), | ||
| component: 'DAILY CHALLENGES', |
Member
Author
Sembauke
approved these changes
Jul 8, 2025
b19ac86
into
freeCodeCamp:feat/daily-challenges
2 of 6 checks passed
4 tasks
Sembauke
added a commit
that referenced
this pull request
Aug 4, 2025
* feat: daily coding challenges (#1597) * feat: daily coding challenges * cfeat: block view * feat: add notification indicator [skip ci] * Revert "feat: add notification indicator [skip ci]" This reverts commit 7fbf03a. * feat: archive page for daily challenges * fix: import order * feat: add Daily Challenge Card widget to Learn Landing View (#1598) * feat: daily challenges service (#1601) * feat: daily challenges service * feat: register DailyChallengesService in the locator * feat: refactor DailyChallengeCard to StatefulWidget and implement countdown timer * chore: remove unused endpoint --------- Co-authored-by: sembauke <semboot699@gmail.com> * chore: rename file (#1602) * feat(service): add /daily-challenge/today route (#1605) * refactor: move daily challenges models to a separate file (#1608) * refactor: move daily challenges models to a separate file * fix: parse date string to datetime * refactor: update Daily Challenge Card styling and text content * feat: implement daily challenge fetching and UI updates * chore: bring `main` changes to `feat/daily-challenges` (#1614) * refactor: separate daily challenges and standard challenges (#1606) * refactor: separate daily challenges and standard challenges * feat: handle daily challenge in ChallengeTemplateView * fix: use completedDailyCodingChallenges array * feat: switch to list view * refactor: move block widget into daily_challenges_view * refactor: daily challenge models and navigation logic * fix: color usage * feat: handle onPressed logic of daily challenge card CTA (#1619) * refactor: map DailyChallengeBlock to Block * feat: handle onPressed logic of daily challenge card CTA * fix: use /today route * refactor: make format utils sharable * test: add unit tests for the utils * feat(service, model): handle daily challenge completed (#1623) * feat(service, model): add /daily-coding-challenge-completed * feat(service): handle daily challenge completion * feat(daily challenges): allow selecting and storing selected language (#1626) * refactor: use DailyChallengeLanguage enum * feat: allow selecting and storing selected language * fix: reinitialize challenge file when language is switched * refactor: move formatChallengeDate to challenge_utils * fix: use the correct challenge object for daily challenge when rebuild * fix: cache daily challenge data to avoid refetch when switching lang * refactor: parse lang from string * refactor: simplify _dailyChallengeLanguageSelector * fix: daily challenge card label (#1629) * fix: display daily challenge card content based on completion status (#1631) * chore: update daily challenge API endpoints (#1630) * chore: update daily challenge API endpoints * fix: change _id to id * fix: update test runner to handle challengeType 28 and 29 (#1634) * fix: update test runner to handle challengeType 28 and 29 * fix: properly support challengeType 29 * fix: hide preview from challengeType 28 and 29 * fix: populate challenges and challengeTiles in DailyChallengeBlock * fix: add CSRF token and JWT access token to challenge completion request * fix: update assets/test_runner to match main * chore: clean up challengeCompleted computation from daily challenges widgets * chore: pin timezone package version * fix: hide progress indicator for daily challenges * fix: call fetchUser after submitting the completed challenge * fix: import order * refactor: update comments for setSelectedDailyChallengeLanguage method * refactor: rename service for consistency * refactor: move getDailyChallenge to daily challenge service * refactor: change daily_challenges to daily_challenge for consistency * refactor: move /today call from daily challenge card to landing viewmodel * chore: log errors and flatten getDailyChallenge function * fix: daily challenges icon in drawer * refactor: rename timer to countdownTimer * fix: correct language selector color when test panel is displayed * fix: font size of daily challenge card title * fix: sync test list with selected language * fix: handle reset code for daily and standard challenge separately * fix: update daily challenge completion status based on isLoggedIn * fix: reflect completion status on daily_challenge_view correctly * feat: curriculum tests for daily challenges * refactor: simplify challenge type check using array * fix: reset tests panel visibility when setting daily challenge language * fix: semantic label for completion state * fix: use injected DailyChallengeService for fetching challenges * test: daily_challenge_view tests --------- Co-authored-by: Sem Bauke <semboot699@gmail.com> Co-authored-by: Niraj Nandish <nirajnandish@icloud.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Checklist:
mainbranch of the repo.This PR:
Note: Clicking on the challenge will result an error. Sem is working on #1584 and adding a button that takes campers straight to the challenge view. We'll need to do some extra work to make the challenge data compatible with our
Challengeclass, so I'll wait for Sem to see if we could share / reuse the data parsing code.Screen recording
Screen.Recording.2025-07-08.at.04.41.58.mov