- @:
- Gulp v4 broke a lot of things that need fixing.
- Running test via webworker does not work in dev, but works in prod build.
- Random unit tests are failing.
- @:
- QOL change: Users want to press back to return to the menu, but instead end up leaving the site altogether.
- A prompt is needed on pressing the back button as to not lose all progress.
- Client-side history management is needed.
- Considerations:
- history.pushState
- react-router
- QOL change: Users want to press back to return to the menu, but instead end up leaving the site altogether.
- Progress:
- Add challenges:
- Circles of given radius through two points
- Closest-pair program
- 24 game
- @:
- 24 game benchmark takes 40s due to inefficiency of solution.
- Empty benchmarks generate an empty array, which outputs an error to console.
- Scrolling quickly on the CodeMirror editor causes the window to change in size during the event.
- Progress:
- Add challenges:
- Averages--Mode
- Averages--Pythagorean means
- Averages--Root mean squares
- Babbage problem
- Balanced brackets
- Progress:
- Finalize RosettaCode task extraction/processing script.
- Add raw files back to version control due to unknown API rate limiting.
- Progress:
- Continue improvements on RosettaCode task extraction/processing script.
- script only fetches from endpoint when raw/ dir nonexistent. Use --force otherwise.
- Remove raw files from version control.
- Update challenges to current task processing output.
- @:
- Make cache busting update to latest on first page load instead of the second refresh.
- Progress:
- Further improve upon RosettaCode task extraction/parsing script.
- Add Google spreadsheet to keep track of and make notes of task conversion process: https://docs.google.com/spreadsheets/d/1b_wMIaKR-gA0tD6ADQfDjDT5BBWaUsQyIPP0TS6o7is/edit?usp=sharing
- Add 24 game challenge (WIP).
- Add 9 billion names of God the integer challenge.
- Add Amicable pairs challenge.
- Update build process following an npm install.
- @:
- Newline spaces are added to text nodes that follow any div HTML element.
- Progress:
- Improve RosettaCode processing script. Raw files much closer to final product.
- Progress:
- Added Vector cross product challenge.
- Added Vector dot product challenge
- Progress:
- Add Happy numbers challenge.
- @:
- Prevent non-heading lines with colon endings from messing up generated JSON.
- Progress:
- Added Zig-zag matrix challenge
- Added Y-combinator challenge
- Progress:
- Add Align Columns challenge
- @:
- Pressing enter in already max-height CodeMirror editor (with scrollbar) does not auto scroll the newline into view. Need Vim scrolloff equivalent for Codemirror editor.
- Progress:
- Created unit tests for Rosetta challenges. Can be run using 'npm run test:rosetta'. Tests use runner.js for quickly checking that they run correctly in Arcade mode environment.
- Added Zhang-suen thinning algorith.
- Progress:
- Add MathJax for mathematical equation rendering.
- @:
- main.bundle.js failed to fetch in a different environment; displays old version despite updates. Cache refreshed and pushed still required two page refreshes to resolve to current iteration.
- Static copy of MathJax currently unusable due to its use of non-
strict mode
code. Currently serving from cdnjs, which involves the possibility of retrieval failure during offline sessions.
- Progress:
- Update workflow to auto generate Rosetta JSON from proper dir.
- Rework first RosettaCode task into Rosetta challenge - 100 doors.
- @:
- Conventurist time-based assertion tests capable of returning different results/run.
- 100 doors challenge stock solution? Efficient solution requires seeing the mathematical pattern.
- Progress:
- Added Linked hash map challenge to ArcadeMode challenges.
- Progress:
- Add script to retrieve all RosettaCode tasks.
- Progress:
- Add Petch challenge.
- Progress:
- Added Balanced parenthesis challenge.
- Added Rotate array challenge.
- Progress:
- Add Conventurist challenge.
- Fix styling issues.
- Progress:
- Add benchmarking feature.
- Progress:
- Add naive solution for bookstore challenge.
- Add babel-polyfill for code use up to ES8.
- Progress:
- Add Gittaca challenge.
- Progress:
- Running user code refactored into its own file (runner.js) + unit tests added
- Build-flow optimized for adding custom challenges
- Progress:
- Create script to create cache files for service worker dynamically.
- Progress:
- Add Rome Bookstore challenge.
- Progress:
- Set up gh-pages branch and generate GitHub Pages site at https://freecodecamp.github.io/arcade-mode/
- Progress:
- Implement indexedDB for offline userData storage.
- Progress:
- Set up service worker implementation for offline mode.
- Progress:
- Set up appcache implementation for offline mode.
- Progress:
- Add mixed challenges option (combined algorithms + data structures).
- Add challenge shuffling.
- Progress:
- UserProfile is mostly done, to view the completed session by user
- Progress:
- Fix svg clip-path for ARCADE MODE title.
- Progress:
- Add JS Bin's loop-protect for infinite loops.
- Add Babel for transpiling user code; allow ES6 usage.
- Syntax errors now do not stop 'run tests' from working.
- Minor styling fixes/updates.
- Progress:
- Add game settings description to modal
- Have ARCADE MODE title link back to site.
- Tidy challenge panel.
- Add return to menu functionality at game over screen.
- Practice mode now only ends when exiting through menu.
- Total time used is now correctly calculated.
- Issues:
- left side border-radius for editor reverts to 0 after pressing start.
- Progress:
- Set up clip-path ARCADE MODE title
- Set up timeLeft to be displayed in MM:SS.
- Pass button now refreshes on a correct solve of a challenge.
- Add score multiplier.
- Add variable for total attempts: totalAttempts
- Set up whiteboard/blind mode to only show pass fail status
- Issues:
- Time left occasionally hops back to initial time one second after start when starting the app immediately following page load.
- Progress:
- Minor fixes to the game logic: Added TESTS_FAILED action.
- Progress:
- Fix and set up editor options.
- Set up placeholder difficulty settings for lives and time.
- Set up freeCodeCamp style navbar.
- Add general styling and formatting.
- Update old tests and implement test for new files
- Progress:
- Add game settings to modal.
- Add player status bar to Arcade mode.
- Add whiteboard mode.
- Issues:
- Toggling class 'Codemirror-whiteboard' does not change editor to whiteboard mode.
- Progress:
- Modified next challenge logic after timer runs out.
- Progress:
- Brainstorm design.
- Generate Balsamiq mockups.
- Progress:
- Refactored CodeMirror editor in Editor-component + tests.
- Progress:
- Fix test for worker.js
- Progress:
- Fix JSOM setup.
- Move https enforcement to server-side (seems to be custom solution to Heroku however).
- Finish writing all client-side tests except for worker.js.
- Issues:
- JSDOM not properly set up; importing Sinon instantly errors during testing.
- Progress:
- Transform Redux code to now use Immutable.js.
- Implement tests for all slice reducers.
- Implement reselect's memoized selector for mapStateToProps calls.
- Progress:
- Added Istanbul for code coverage.
- Added script bin/port_tests.pl to create test files for all source files
- Added coverage scripts to bin/cover_test_client|server.sh + npm scripts.
- Progress:
- Add opening modal to app.
- Decompose ArcadeAction and ArcadeReducer down into smaller pieces.
- Progress:
- Added
Insert Solution
button for quick testing. - Did Minor UX improvements, showing/hiding of buttons.
- Added score to Navbar + Game Over screen after timer runs out.
- Added
- Progress:
- Add user output box to the left panel.
- Add challenge title and description to left panel.
- Move the display of challenge information after user presses start.
- Add ability to continue to the next challenge after passing all tests.
- Progress:
- Test case results are now shown on the left panel of the application.
- Added configurable timer which starts when a user starts a session.
- Progress:
- Set up WebWorker to handle evaluation of user defined code.
- User code execution hook generated; will be used for the code output window.
- Test cases can now be evaluated, though still need to map the case to the result.
- Progress:
- Added react-codemirror component and integrated with redux code.
- Progress:
- Set up app on heroku: https://arcademode.herokuapp.com
- Create a head script to enforce https on the Heroku app.
- Implement react-bootstrap as a possible solution to UI design; initialize navbar
- Initialize info panel and editor sections
- Progress:
- Added redux code with action, container (App.jsx) and reducer.
- Created sample unit test file (test/ArcadeAction.spec.js) for first redux actions.
- Progress:
- Set up gulp tasks for all major file types; set up gulp watch tasks
- Add mongoose setup code; revisit following completion of client-side UI
- Progress:
- Added Enzyme + first unit test for Header component following an example from Testing React components with Enzyme and Mocha
- Progress:
- Set up directory structure
- Set up minimal placeholder files to test gulp task
- Initialize gulp task for transpiling JSX/ES6 -> ES5