Skip to content

Repository files navigation

JavaScript Logo

JavaScript Master Handbook

A live "proof of work" tracking daily algorithmic practice, core engine fundamentals, and hands-on JavaScript projects.

Questions Count   Projects Count

About This Repo

This is a multi-project JavaScript learning repo. Each main project is a real, production-grade system built step-by-step from isolated practice questions. Finish all questions → build each module → wire them into the final runnable app. Complete one main project, then move to the next.

Current progress:   🔨 Project 1 — NodeBiz Dashboard API  |  Questions 1–20  |  5 modules

# Main Project Questions Status
1 NodeBiz Dashboard API — multi-source payment pipeline ques 1–20 🔨 In Progress
2 (coming after Project 1 completes)

How to use:

  1. Expand a project row below.
  2. Solve every question in the left column.
  3. Build every function in the right column.
  4. Complete all modules → run the final project.
  5. Start the next main project.

🗺️ The Road to NodeBiz

 ques 1–6          ques 7–10         ques 11–13        ques 14–18        ques 19–20
    │                  │                  │                  │                 │
    ▼                  ▼                  ▼                  ▼                 ▼
[pro-1]            [pro-2]            [pro-3]            [pro-4]         [pro-final]
Data Utils  →  Data Normalizer  →  RBAC Engine  →  Analytics Engine  →  NodeBiz API


🚀 Project 1  —  NodeBiz Dashboard API  ·  pro-final-nodebiz

What you'll achieve: Build a complete enterprise-grade data pipeline from scratch. Raw payment data from 3 providers (Razorpay, Bank Transfer, UPI) enters the system, gets normalized to one unified schema, passes through a role-based security layer that masks sensitive fields per user role, flows into an analytics engine generating pivot tables and running reports, and streams out as a live terminal dashboard. You finish by running one command — node projects/pro-final-nodebiz/index.js — that executes the entire pipeline end-to-end. A real, demonstrable portfolio piece.

Build path:   1.1 Utility Belt  →  1.2 Data Normalizer  →  1.3 RBAC Engine  →  1.4 Analytics Engine  →  1.Final NodeBiz API


📦 1.1  —  Data Utility Belt  ·  pro-1-data-utils   ┆   ques 1–6   ┆   🔽 click to open

What you will gain: You build the utility functions every real JS codebase relies on — deep cloning, flattening nested data, grouping records, chaining transforms, caching results. After this module you will understand how lodash works internally, and every module you build after this will import from here.


📝 Questions  — solve all 6 first 🔨 Functions to Build  ·  open project guide →
# File What to Learn
1 ques-1-deep-clone Recursive deep copy
2 ques-2-flatten Dot-notation flattening
3 ques-3-groupby Multi-key grouping
4 ques-4-pipe-compose Function composition
5 ques-5-memoize TTL result caching
6 ques-6-curry Curry & partial application
Function to Build Needs
deepClone(value) ques-1
flattenObject(obj, prefix) ques-2
flattenArray(arr) ques-2
groupBy(arr, ...keys) ques-3
pipe(...fns) ques-4
compose(...fns) ques-4
memoize(fn, ttlMs) ques-5
curry(fn) ques-6
partial(fn, ...args) ques-6
📦 1.2  —  Data Normalizer  ·  pro-2-data-normalizer   ┆   ques 7–10   ┆   🔽 click to open

What you will gain: You learn to accept raw, inconsistent API data from 3 different payment providers and convert all of it into one clean unified shape. After this module you will understand the Adapter design pattern, recursive data structures, and async batching with concurrency control — skills used in every backend data pipeline at companies like Razorpay, Stripe, and Zerodha.


📝 Questions  — solve all 4 first 🔨 Functions to Build  ·  open project guide →
# File What to Learn
7 ques-7-normalize-adapter Adapter pattern, multi-source mapping
8 ques-8-permission-tree Recursive role inheritance
9 ques-9-deep-diff Object change detection
10 ques-10-promise-limit Concurrent async task pool
Function to Build Needs
razorpayAdapter(raw) ques-7
bankTransferAdapter(raw) ques-7
upiAdapter(raw) ques-7
normalizeSchema(raw, source) ques-7
normalizeBatch(arr, source) ques-7, ques-10
resolvePermissions(tree, role) ques-8
validateRecord(record) ques-9
📦 1.3  —  RBAC Engine  ·  pro-3-rbac-engine   ┆   ques 11–13   ┆   🔽 click to open

What you will gain: You build a security layer that controls exactly what data each user is allowed to see. After this module you will understand how an LRU Cache works (used in every OS, database and CDN), how a Trie powers search autocomplete (used in VS Code and Google Search), and how field-level data masking works under GDPR and India's DPDP Act — a required feature in every regulated platform.


📝 Questions  — solve all 3 first 🔨 Functions to Build  ·  open project guide →
# File What to Learn
11 ques-11-lru-cache LRU eviction policy
12 ques-12-trie Prefix tree / autocomplete
13 ques-13-field-masking Role-based field masking
Function to Build Needs
resolvePermissions(role) ques-8 (from 1.2)
hasPermission(role, perm) ques-8 (from 1.2)
LRUCache — permission cache ques-11
Trie — transaction ID search ques-12
maskEmail(email) ques-13
maskPhone(phone) ques-13
applyRBAC(record, role) ques-8, ques-13
maskBatch(records, role) ques-13
📦 1.4  —  Analytics Engine  ·  pro-4-analytics-engine   ┆   ques 14–18   ┆   🔽 click to open

What you will gain: You turn raw transaction records into real business intelligence — pivot tables, running totals, moving averages, and sorted reports. You also build an Event Emitter (the core of Node.js itself) and a Rate Limiter (used in every API gateway like AWS, Cloudflare and Nginx). After this module you will be able to power any analytics dashboard with live, reactive data.


📝 Questions  — solve all 5 first 🔨 Functions to Build  ·  open project guide →
# File What to Learn
14 ques-14-event-emitter Pub/Sub event system
15 ques-15-rate-limiter Token bucket algorithm
16 ques-16-pivot-table 2D aggregation pivot table
17 ques-17-running-totals Running totals & moving averages
18 ques-18-multi-sort Priority multi-key sort
Function to Build Needs
groupBy(arr, ...keys) ques-3 (from 1.1)
EventEmitter class ques-14
RateLimiter class ques-15
pivotTable(records, row, col, val) ques-16
aggregators (sum/count/avg/min/max) ques-16
runningTotal(records, key) ques-17
slidingWindowAvg(records, key, n) ques-17
dailyAggregate(records, date, val) ques-17
summarize(records, key) ques-17
multiKeySort(records, config) ques-18
⭐ 1.Final  —  NodeBiz Dashboard API  ·  pro-final-nodebiz   ┆   ques 19–20 + all above   ┆   🔽 click to open

What you will gain: You wire all 4 modules into one running application. Run node index.js and watch raw payment data flow through normalization → RBAC masking → analytics, producing a live report in the terminal. After this you will have a complete, demonstrable data pipeline architecture — a real portfolio piece that shows you can design and build production-grade JavaScript systems end-to-end.


📝 Questions  — final 2 concepts + all previous 🔨 Pipeline Steps to Build  ·  open project guide →
# File What to Learn
19 ques-19-generators Lazy streaming with generators
20 ques-20-safe-json Safe JSON (circular refs, Dates)

Also requires: all ques 1–18 (modules 1.1–1.4 complete)

Pipeline Step Needs
step1_normalize(batch, source) 1.2 complete
step2_applyRBAC(records, role) 1.3 complete
step3_generateReport(records) 1.4 complete
step4_auditTrail(before, after) ques-9, ques-20
streamTransactions*(batches) ques-19
createPipeline(role) 1.1 pipe() + all above

Run: node projects/pro-final-nodebiz/index.js


📋 Quick Reference

About

Progressive JavaScript learning repo — daily practice questions, real sub-modules, and a capstone project (NodeBiz Dashboard API) built step-by-step from scratch.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages