HAP sitting at his laptop, ready to learn how developers work

Station 5: Getting Started with Real Projects

Learning the developer workflow in a safe practice environment

Welcome to Station 5! After learning computational thinking, I wanted to practice being a developer. I know how to think about problems now—but what does it actually feel like to work with real developer tools?

I asked Grace Hopper: "How can I practice the developer workflow without being overwhelmed by complexity?"

She smiled. "HAP, developers learn by practicing with real projects in safe environments. Prof Teeters has a project called Magic Quotes—it's live, it works, and it's designed to be low-stress. You'll fork it for safety, clone it to explore, and validate it to build confidence. This is how developers practice."

"You won't write code yet. You'll just experience the workflow. That's where everyone starts."

Let me show you what I learned about practicing like a developer... 🟠

What You'll Learn at This Station

HAP's Discovery: I used to think I needed to understand everything before I could touch a project. But developers have a workflow that makes learning safer and faster—fork for safety, clone to explore, validate to build confidence. Here are the three insights that taught me how to learn from real code.

🍴 Forking Creates a Safe Workspace

Your Copy, Your Rules

Forking gives you a personal copy on GitHub where you can experiment without affecting anything. It's not stealing—it's how developers create safe learning environments.

💻 Local Means Hands-On

Clone → Explore → Learn

Cloning brings real code to your computer where you can read it, run it, and understand it. Your local copy is separate from GitHub—nothing you do locally affects the online version until you deliberately push.

Validation Builds Confidence

See It Work First

Running npm run dev proves the project works on your computer. Running npm run validate shows you the quality checks. Seeing these succeed builds confidence that you can work with real code.

HAP looking embarrassed about past mistakes

HAP's Confession:

  • I thought Git and GitHub were the same thing. Grace corrected me: Git tracks changes locally, GitHub hosts projects online. They work together but they're different tools. 😳
  • I assumed forking was wrong—like I was copying someone's work dishonestly. But it's the expected way to create a safe workspace for learning.
  • I was terrified to run npm install because I didn't understand "dependencies." It just means "tools this project needs to run."
  • I thought I needed to understand all the JavaScript before I could work with the project. Magic Quotes taught me I only need to understand the part I'm working on.

Understanding Git and GitHub

Before Grace showed me the workflow, she explained what these tools actually do and why developers use them.

Grace explained: "Developers learn by working with real projects. They fork to create a safe workspace, clone to explore locally, and validate to prove everything works. While this is like contributing to open source, more importantly for you it is about learning how to work with code using the correct tools. That way when you start to learn to code, you will already have practice with the workflow."

Git vs. GitHub

Git (on your computer)

Git is version control software. It tracks changes to files over time, like a save history for your project. Every change gets recorded with a message explaining what you did and why.

Git runs on your computer and works even when you're offline.

GitHub (online platform)

GitHub is a website that hosts projects online. It's where developers share code, store backups, and work together on projects.

GitHub adds features like forking, browsing code online, and managing project files.

Three Copies: Original, Fork, and Local

Grace drew me a diagram showing the three versions of a project I'd be working with:

Original Project

The main project on GitHub (e.g., cynthiateeters/magic-quotes)

You can read and explore this, but you can't change it directly.

Your Fork (Remote)

Your personal copy on GitHub (e.g., hap-bot/magic-quotes)

This is YOUR workspace—you can experiment here without worrying.

Your Clone (Local)

The files on your computer after cloning

Where you actually read, run, and explore the code.

🟠 What I learned:

These three copies are separate until I deliberately connect them. My local changes don't affect my fork until I push. My fork doesn't affect the original at all unless I explicitly request it. This separation is what makes experimentation safe.

Magic Quotes: A Practice Environment

Grace introduced me to Magic Quotes—a real project intentionally designed for beginners to practice developer workflows.

Why Magic Quotes works for learning:

  • Real and deployed — It's not a toy example; it's a live website at magic-quotes.netlify.app
  • Beginner-friendly structure — One file per person, so you can't accidentally interfere with others' work
  • Immediate validation — Built-in tools check if you did everything correctly
  • Forgiving by design — Your fork is YOUR space; you can't break the original

Two Ways to See the Same Project

GitHub Repository

github.com/cynthiateeters/magic-quotes

This is where the source code lives. I can see files, read documentation, and understand how it's structured.

Live Website

magic-quotes.netlify.app

This is the deployed site built from that code. Same project, two views—one shows the source, one shows the result.

Grace said: "Visit both. See how the website works, then look at the code to understand how it was built. That's what developers do—they explore the running version first, then study the code."

Before You Start: What You'll Need

Grace asked me to check that I had the right tools installed before I started practicing. I already had everything, but this was my first time actually using them together.

HAP's setup checklist: I had VS Code, Git, Node.js, and a GitHub account already installed and created. But I'd never used them for an actual developer workflow—this was my first time putting the pieces together.

Tools You'll Use

VS Code

Your text editor and command center. I'll use the built-in Source Control panel for Git operations and the integrated terminal for running commands.

Why this matters: VS Code combines editing, version control, and terminal in one place.

Git & GitHub

Git tracks changes on my computer. GitHub hosts projects online. VS Code connects them through its Source Control panel.

Why this matters: I won't need to memorize terminal commands—VS Code's GUI handles Git operations.

Node.js & npm

Node.js runs JavaScript outside browsers. npm (Node Package Manager) installs tools that projects need to work.

Why this matters: Magic Quotes uses Vite (a development server) that runs through npm.

GitHub Account

My identity on GitHub. When I fork Magic Quotes, it creates a copy under my account name.

Why this matters: Forking requires a GitHub account—it's where my practice workspace lives.

🟠 What I learned:

Having tools installed and actually using them are completely different. I'd opened VS Code before, but I'd never cloned a repository, run npm commands, or used the integrated terminal. This station was where those tools stopped being abstract and started making sense.

Step 1: Forking Creates Your Safe Workspace

Grace walked me through forking first. "This creates your own copy on GitHub," she explained. "Whatever you do in your fork cannot affect the original. That's what makes it safe to practice."

What forking does: It creates a complete copy of the Magic Quotes repository under your GitHub account. The original stays untouched. Your fork is YOUR workspace.

How I Forked Magic Quotes

  1. I visited github.com/cynthiateeters/magic-quotes
  2. I clicked the Fork button in the top-right corner
  3. GitHub asked me where to create the fork—I selected my account
  4. A few seconds later, I had my own copy at github.com/[my-username]/magic-quotes
HAP looking relieved

HAP's Confession:

I was nervous about forking. "What if I break something?" Grace reminded me: "Your fork is YOUR copy. The original repository cannot be affected by anything you do in your fork. You have complete freedom to experiment." That made me feel safe to try. 😳

Original Repository

cynthiateeters/magic-quotes

This stays exactly as it was. I can read it, but I can't change it.

My Fork (Remote)

[my-username]/magic-quotes

This is MY copy on GitHub. I can experiment here without worrying.

What I noticed: My fork looks identical to the original—same files, same structure. But the repository name at the top shows my username, with a note: "forked from cynthiateeters/magic-quotes". That confirmed I was in my own workspace.

Step 2: Cloning Brings Code to Your Computer

After forking, Grace told me: "Now you need a local copy—files on your computer where you can actually explore and run the project. That's what cloning does."

What cloning does: It downloads your fork from GitHub to your computer. Your local copy and your fork on GitHub are separate until you deliberately sync them.

How I Cloned Using VS Code

Grace showed me the VS Code way (no terminal commands needed):

  1. On my fork's GitHub page, I clicked the green Code button
  2. I copied the HTTPS URL (it looked like https://github.com/[my-username]/magic-quotes.git)
  3. In VS Code, I opened the Command Palette (Cmd+Shift+P on Mac, Ctrl+Shift+P on Windows)
  4. I typed "Git: Clone" and selected that command
  5. I pasted my fork's URL
  6. VS Code asked where to save the files—I chose a folder on my computer
  7. After a few seconds, VS Code asked if I wanted to open the cloned repository—I clicked "Open"

🟠 What I learned:

Cloning means downloading. But it's smarter than just copying files—Git remembers where the code came from (my fork on GitHub) so I can sync changes later. My local copy doesn't affect GitHub until I push. That separation gave me confidence to explore.

Three Copies: The Full Picture

Original Project

cynthiateeters/magic-quotes (on GitHub)

The source I forked from. Untouchable.

My Fork (Remote)

[my-username]/magic-quotes (on GitHub)

My copy on GitHub. Safe workspace.

My Clone (Local)

/path/on/my/computer/magic-quotes

Files on my laptop. Where I actually work.

What I noticed: Once I opened the cloned repository in VS Code, I could see all the files in the Explorer panel. These were real files on my computer now—not just something I was viewing on GitHub.

Step 3: Exploring Files and Documentation

With Magic Quotes open in VS Code, Grace told me: "Before running anything, explore. Read the README. Look at the folder structure. Understand what you're working with."

What exploring does: You learn how the project is organized, what each folder contains, and where to find information when you need it. Documentation makes sense when you're looking at actual files.

What I Found in the Root README

I opened README.md and read the project overview. It explained:

  • Purpose: Magic Quotes displays random quotes on a website
  • Structure: One JSON file per contributor in the data/ folder
  • Commands: npm install, npm run dev, npm run validate
  • Contributing: Clear guidelines on creating quote files

Following the Documentation Hierarchy

The root README pointed me to data/README.md for contributor guidelines. I navigated there and found:

  • Required JSON fields: author, about, entries
  • Schema rules: unique IDs, valid categories, allowed tones
  • Example files showing correct patterns

Studying an Example File

I opened data/quote-example.json and saw this structure:

{
  "author": "Example Contributor",
  "about": "Demonstrating the Magic Quotes JSON structure",
  "entries": [
    {
      "id": "example-001",
      "category": "developer-wisdom",
      "tone": "reflective",
      "text": "Code is read more often than it is written.",
      "source": "ai-assisted"
    }
  ]
}

🟠 What I learned:

Documentation hierarchy clicked when I saw it in context. The root README gave me the big picture. The folder-specific README gave me detailed rules. The example files showed me the exact pattern to follow. Reading happened naturally because I was looking at real files, not abstract instructions.

What I noticed: I didn't need to understand the JavaScript files or how Vite works. The JSON structure was clear enough that I could see what I'd need to create later. That made the project feel approachable.

Step 4: Setting Up and Seeing It Work

Grace said: "Now validate your setup. Run the project locally and see it work. That proves everything is configured correctly."

What validating does: You prove that the project works on your computer. Running npm install gets the tools you need. Running npm run dev starts the website locally. Running npm run validate tests the quality checks.

Opening the Integrated Terminal

Grace showed me how to open VS Code's integrated terminal:

  • Menu: Terminal → New Terminal
  • Keyboard: Ctrl+` (backtick key)

The terminal opened at the bottom of VS Code, already in my magic-quotes folder. No need to navigate—VS Code knew where I was working.

Installing Dependencies

I ran my first command:

npm install

What happened: npm read package.json (the file listing required tools) and downloaded everything the project needs. A node_modules/ folder appeared with hundreds of files—these are the tools Vite and other systems use.

HAP looking embarrassed

HAP's Confession:

I was terrified to run npm install because I didn't understand what "dependencies" meant. When I finally ran it, I realized it just means "tools this project needs to work." The package manager downloaded them automatically. I had built up anxiety over something that took 30 seconds. 😳

Starting the Development Server

Next, I ran:

npm run dev

What happened: Vite started a local web server. The terminal showed:

VITE v5.0.0  ready in 234 ms

  ➜  Local:   http://localhost:5173/
  ➜  press h + enter to show help

I opened my browser and visited localhost:5173. Magic Quotes appeared—the same website I'd seen at magic-quotes.netlify.app, but running on my computer!

HAP celebrating success

🟠 HAP's breakthrough moment:

Seeing Magic Quotes running on localhost made everything click. This wasn't just reading about code—I was running production-quality code on my laptop. The website worked. The quotes displayed. Everything functioned. That's when I felt like I was practicing being a developer.

Testing the Validation System

With the dev server still running in one terminal, I opened a second terminal (Terminal → New Terminal) and ran:

npm run validate

What happened: The validation script checked all JSON files in data/ against the schema rules. It confirmed:

  • All required fields present
  • All IDs unique
  • All categories and tones valid
  • No syntax errors

The terminal showed: ✓ All quote files are valid

🟠 What I learned:

Validation tools catch mistakes before they cause problems. When I create my own quote file later (Station 6), I'll run npm run validate to check if I followed the rules correctly. It's like a friendly reviewer who points out errors without judgment.

What I noticed: These three commands—npm install, npm run dev, npm run validate—are the core developer workflow. Install tools, run the project, check quality. That's what developers do every day.

HAP's Readiness: What I Accomplished

After running npm run validate successfully, I stepped back and realized what I'd done. I hadn't written any code yet—but I'd practiced the entire developer setup workflow.

What I successfully completed:

  • ✅ Forked Magic Quotes (created my safe workspace on GitHub)
  • ✅ Cloned my fork locally (got the files on my computer)
  • ✅ Explored the repository structure (understood the organization)
  • ✅ Read documentation in context (READMEs made sense)
  • ✅ Installed dependencies (got the tools working)
  • ✅ Ran the development server (saw the site locally)
  • ✅ Validated the setup (confirmed everything works)
  • ✅ Understood the JSON schema (know what to create next)
HAP feeling confident and ready

HAP's reflection:

Before Station 5, Git, GitHub, npm, and Vite were intimidating terms. Now they're tools I've actually used. I forked a real repository. I cloned it to my computer. I ran it locally and saw it work. I didn't just read about the developer workflow—I practiced it. That makes me feel ready for what's next.

What Prof. Teeters Said

After I showed Prof. Teeters my running localhost and successful validation, she smiled:

"HAP, what you did today—forking, cloning, setting up a project, validating your environment—this is what professional developers do every day. You didn't write code yet, but you learned the workflow. That matters more than you think."

"Magic Quotes gave you a low-stress way to practice with real tools. Now you know what it feels like to work like a developer. That confidence will carry you through everything that comes next."

What I'm ready for: In Station 6, I'll create my own quote file (quote-hap.json), use VS Code's Source Control panel to commit my work, and practice the full Git workflow. But I already have everything set up. No friction, no setup time—just practice.

Developer Workflow Quick Reference

Here are the key insights from practicing the developer workflow with Magic Quotes:

🍴 Forking Creates Safety

Your Copy, Your Rules

Forking gives you a personal copy on GitHub. Your fork is YOUR workspace—experiment freely without affecting the original.

Action: Click "Fork" on any GitHub repository to create your copy.

💻 Cloning Brings Code Local

Download to Explore

Cloning downloads your fork to your computer. Your local copy and GitHub copy stay separate until you push changes.

Action: Use VS Code's "Git: Clone" command with your fork's URL.

🔍 Exploring Builds Understanding

Read in Context

Documentation makes sense when you're looking at actual files. Follow README links, study examples, notice patterns.

Action: Open README.md, navigate to folders, examine example files.

Validating Builds Confidence

See It Work

Running the project locally proves your setup works. Validation tools catch mistakes early.

Action: Run npm install, npm run dev, npm run validate.

Essential Commands

npm install

Installs project dependencies listed in package.json. Run this once after cloning.

npm run dev

Starts the local development server. Visit localhost:5173 to see the site running.

npm run validate

Checks all JSON files against schema rules. Confirms your files are correctly formatted.

🟠 Remember:

The developer workflow isn't about memorizing commands—it's about understanding the sequence. Fork for safety → Clone to explore → Validate to confirm. That pattern applies to every project you'll work with. You've practiced it once. You can do it again.