git clone <pixelcraft-repo-url>
cd pixelcraft
Use your Session 2–3 skills to map the codebase:
ls -la # All files including .git, .gitignore
# Count source files
find . -name "*.js" -not -path "*/node_modules/*" | wc -l
find . -name "*.css" -not -path "*/node_modules/*" | wc -l
# Read the project manifest
cat package.json
# See remotes
git remote -v
pixelcraft/
├── public/ ← Static assets (images, favicon)
├── src/ ← Source code
│ ├── index.html ← Entry point HTML
│ ├── styles/ ← CSS files
│ │ ├── main.css
│ │ ├── toolbar.css
│ │ └── settings.css
│ ├── scripts/ ← JavaScript files
│ │ ├── app.js ← Main application logic
│ │ ├── filters.js ← Image filter functions
│ │ ├── canvas.js ← Canvas operations
│ │ ├── toolbar.js ← Toolbar UI logic
│ │ └── utils.js ← Helper functions
│ └── assets/ ← Icons, fonts
├── package.json ← Dependencies & scripts
├── .gitignore ← Files Git ignores
├── .eslintrc.json ← Linting configuration
├── .prettierrc ← Formatting configuration
└── README.md ← Documentation
npm install # Downloads all packages
ls node_modules | wc -l # How many packages? (hundreds!)
npm run dev # Start development server
Open the local URL in the browser. PixelCraft is running on your machine.
Open 5 files in src/scripts/. For each, write a comment at the top:
// I think this file does: _________________________
Don't worry about understanding every line. Read the function names, variable names, and comments. Build a rough mental model.
Answer these using only terminal commands:
# (a) Find the largest file in src/
find src/ -type f -exec ls -la {} \; | sort -k5 -rn | head -1
# (b) Which JS file contains the word "filter"?
grep -rl "filter" src/scripts/
# (c) How many total lines of JavaScript?
find src/ -name "*.js" | xargs wc -l
Dependency Graphs.
PixelCraft's package.json lists ~10 direct dependencies. But npm install downloads 300+ packages because each dependency has its own dependencies. This forms a dependency tree (actually a DAG — Directed Acyclic Graph).