Practice data structures and algorithms in modern JavaScript (ES modules) with the built-in Node.js test runner—no Jest or Vitest required.
GitHub: https://github.com/GAjay/daily-dsa-javascript
- Node.js 20+
npm testRun tests for one problem:
node --test problems/2026-10-11-two-sum/two-sum.test.jsEach day (or each problem) lives in its own folder under problems/:
problems/
YYYY-MM-DD-slug/
README.md # problem statement, examples, constraints
solution.js # your implementation (exported functions)
solution.test.js
Shared helpers (optional) go in lib/.
Scaffold an empty problem from a slug:
npm run new-day -- binary-search
# creates problems/2026-10-11-binary-search/Then edit README.md, implement solution.js, and run npm test.
- Read
README.mdin the problem folder. - Implement exports in
solution.js(see the startertwoSumexample). - Run
npm testuntil green. - Commit with a message like
dsa: 2026-10-11 two sum.
Start here: automation/SETUP.md — GitHub Actions + Cursor Automation prompt template + Cloud Environment.
See also automation/README.md.
npm run daily # today's problem from catalog (idempotent)
npm run daily -- --dry-run # preview next slugGitHub: .github/workflows/daily-dsa.yml runs on a cron (06:00 UTC) and commits the new folder + automation/state.json. .github/workflows/ci.yml runs npm run test:ci (only implemented solutions—scaffolds do not fail CI).
- Create/link your GitHub repo and push
main. - Enable Actions → run Daily DSA once manually to verify.
- Implement each day's
solution.js; usenpm testlocally (all problems, including drafts).
MIT