✦WebForge 2026
WORKSHOPS / DAY 1 / Planning & Development Workflow
YOUR EXERCISE_ PDF CHECKLIST ↓
SEASON 2026 // DAY 01 OF 03
ai-programming-jam.shoug-tech.com / workshops / day-1
README.md

# Planning and Development
Workflow

Before you start building for the competition, you need a repeatable way to go from "here is what the application should do" to "here is a working feature."

Today you will practice breaking down requirements, visualizing how an application works in Excalidraw, planning the interface in Variant, setting up your development environment, using version control, and directing Codex or Claude Code during implementation.

AI can generate substantial parts of your application. Your job is to direct that work, understand the objective, review what changed, run the application, test the result, investigate problems, adapt when requirements change, and decide what happens next.

You are not expected to finish an application today. You are expected to leave with a workflow that you can repeat independently during the WebForge.

Today you'll practice
Plan → Design → Build → Test → Commit
You'll use
Excalidraw, Variant, VS Code, Git, Codex, Claude Code
By the end
One working, tested, committed feature
00

## What You Need

Get these ready before the practical portion begins. Ask an instructor if something is not working.

Accounts
GitHubClaudeOpenAI / CodexVariant
Software
Visual Studio CodeGitNode.jsnpmModern BrowserClaude CodeCodex
You do not need prior experience building a complete web application. You should be comfortable opening files and folders, using a browser, and following commands demonstrated by the instructor.
01

## Think Before You Build

AI can generate code very quickly, but somebody still has to define what the application is actually supposed to do.

Before implementation begins, you should be able to explain the application's users, pages, features, actions, data, and expected behavior.

How to break down a requirement

Planning also improves AI output. The more clearly you can describe the objective, behavior, and constraints, the more useful the AI assistant can be.
Important: Planning does not mean designing every detail before you start. You only need enough understanding to know what you are building, what should happen, and how you will verify that it works.
02

## Functional Planning with Excalidraw

Excalidraw is where you visualize how the application functions. You are not creating a formal enterprise architecture diagram.

Your diagram should help you answer one simple question:

What happens when the user does something?

Your diagram should show

User → Interface → Action → Application Logic → Data → Result
Excalidraw diagram for the University Portal, showing the User class with the Student, Instructor, and Administrator roles and how they connect to the Course and ExamType classes.
Example Excalidraw diagram — the University Portal: roles, the data each role owns, and who controls what.
03

## UI/UX Planning with Variant

Your Excalidraw diagram describes how the application works. Variant helps you explore how that functionality should be presented to the user.

Example design prompt

UI PLANNING PROMPT
Design a simple web application for a university portal with three roles: student, instructor, and administrator. The interface should allow: - a student to browse available courses, enroll or drop, and see their credit limit - an instructor to view the students enrolled in their courses and enter grades - an administrator to manage accounts, courses, capacity, and the credit limit Prioritize clarity and usability. Include: - a clear page hierarchy for each role - an obvious primary action on every screen - readable course cards or rows showing code, schedule, and remaining capacity - clear enrolled, full, and unavailable states - a useful empty state Keep the design simple enough to implement during a beginner workshop.
Remember: the generated interface is a proposal. You decide whether the navigation, hierarchy, actions, and feedback actually make sense.
Variant-generated interface concept for the University Portal, showing the course list and enrollment actions.
Example Variant output — an interface concept for the University Portal.
04

## Your Development Environment

You do not need to memorize commands blindly. Understand what each part of your development environment is responsible for.

Two commands you will use constantly

terminal
project-folder
# Install the packages listed by the project
npm install

# Start the local development server
npm run dev

The exact development command can vary between projects. Check package.json or the repository README if npm run dev is not available.

When something breaks

Terminal → Browser Console → Network → Relevant Code → AI Assistant
Do not skip directly to changing code. First collect evidence about what is actually failing.
05

## Version Control with Git & GitHub

Git records the history of your project. GitHub gives that repository a remote home and makes collaboration, backup, and later deployment easier.

  • Repository is the version-controlled project
  • Commit is a saved checkpoint
  • Push sends local commits to GitHub
  • Pull brings remote changes to your machine
  • Commit meaningful working checkpoints
  • Check what changed before committing
  • Avoid allowing large amounts of AI-generated code to accumulate without a checkpoint
  • Use version history as a safety net when experiments go wrong

Essential Git workflow

terminal
git-basics
# See what has changed
git status

# Stage your current changes
git add .

# Save a meaningful checkpoint
git commit -m "Implement task creation"

# Send your commits to GitHub
git push

# Get the newest remote changes
git pull
Commit when something works. A useful commit gives you a known-good point you can return to if the next change breaks the application.
06

## Using Codex & Claude Code as Engineering Assistants

Codex and Claude Code can inspect projects, implement features, modify multiple files, explain code, investigate bugs, run commands, refactor implementations, and assist with testing.

They can write a small amount of code or a very large amount of code. That is not the important distinction.

You remain responsible for defining the objective, directing the work, reviewing the result, testing behavior, debugging problems, and verifying that the application actually satisfies the requirement.

Describe → Generate or Modify → Review → Run → Test → Debug → Verify

Give AI useful context

AI output is not automatically correct. A generated feature is only finished after you have verified its behavior.
07

## Prompt Templates You Can Use

These are starting structures, not magic formulas. Change them to match the problem you are solving.

01 / understand before implementing
I am working on the following requirement: [REQUIREMENT] Before writing any code, help me break this requirement down into: - users involved - required functionality - pages or components - user actions - data requirements - important interactions Identify anything that is unclear or that I should decide before implementation. Do not implement anything yet.
Use this: when you receive a requirement and need to understand the problem before implementation.
02 / implement a defined task
I want to implement the following feature: [FEATURE] Expected behavior: [EXPECTED BEHAVIOR] Relevant constraints: [CONSTRAINTS] First inspect the existing project and determine which files are relevant. Explain your implementation approach, then make the required changes. Do not modify unrelated functionality. After implementation, tell me: 1. what you changed 2. what I should test 3. anything that still needs verification
Use this: once you understand the feature and are ready to implement it.
03 / debug using evidence
I expected: [EXPECTED BEHAVIOR] Instead, I observed: [ACTUAL BEHAVIOR] Error message or evidence: [ERROR / CONSOLE OUTPUT / OBSERVATION] Investigate the likely cause before changing the code. Explain what evidence supports your diagnosis. Then propose the smallest appropriate fix. After making the change, tell me exactly how I should verify that the problem is resolved.
Use this: when behavior is wrong or an error occurs. Give the assistant evidence instead of only saying "fix it."
04 / review what changed
Review the changes you just made. For each changed file, explain: - why it was changed - what behavior it is responsible for - any assumptions you made - any risks or edge cases I should test Do not make additional changes unless you identify a clear problem that requires one.
Use this: after a substantial AI-generated change when you need to understand what was modified before moving on.
08

## Worked Example

Your instructor will demonstrate the complete workflow using a small application called the University Portal.

Instructor Example / Requirement Brief

University Portal

Build a small web application where students sign up for courses, instructors manage the courses they teach, and administrators oversee the whole system.

Every person signs in as a user, but what they can see and do depends on their role.

User Classes
  • User: shared parent class for every account
  • Student
  • Instructor
  • Administrator
User Data
  • User: name, ID, password, email, phone number, role, and address
  • Student: enrolled courses and credit limit
  • All user information uses getters, setters, and validation
Domain Classes
  • Course: name, code, instructor, schedule, capacity, description, and enrollment status
  • ExamType: grades and exam type
  • Course and ExamType information uses getters, setters, and validation
Required Actions
  • Sign in and out
  • Student: view available and enrolled courses, enroll, drop, view grades, and update personal information
  • Instructor: view enrolled students, grade assignments, update course info
  • Administrator: manage student and instructor accounts, create and manage courses, view enrollment statistics, and generate reports
Controls & Relationships
  • Administrator controls student credit limits and course capacity
  • Instructor is assigned to courses and controls the course information they are allowed to update
  • Instructor assigns grades and exam types
  • Student can view course information, exam types, and grades
Scope
  • Each role sees only what it is allowed to see
  • Course capacity and enrollment status determine whether a course is full
  • A student cannot enroll past the credit limit
  • Focus on the workflow

Before building, ask questions

The requirement tells you what the application needs to accomplish. It does not automatically answer every product and implementation decision.

The complete walkthrough

  1. Read the requirement and identify the user, behavior, pages, actions, and data.
  2. Use the first AI prompt to identify unclear requirements and implementation decisions.
  3. Sketch the University Portal in Excalidraw: the roles, what each one can do, and the data behind it.
  4. Turn the functional plan into an initial interface concept in Variant.
  5. Open the project in VS Code and explain the project structure.
  6. Run npm install if dependencies need to be installed.
  7. Run the application locally with npm run dev.
  8. Create or connect the GitHub repository.
  9. Create an initial Git checkpoint.
  10. Give Codex or Claude Code a clearly defined implementation task.
  11. Review the files and code changed by the assistant.
  12. Run the application again.
  13. Test the implemented behavior.
  14. If something is wrong, collect evidence and investigate the problem.
  15. Use AI to assist with diagnosis and debugging where useful.
  16. Verify that the feature now behaves as expected.
  17. Commit the working implementation to GitHub.
Requirement → Plan → Diagram → Design → Project → AI Implementation → Review → Run → Test → Debug → Verify → Commit
The University Portal project opened in Visual Studio Code, showing the project folder structure.
1 — The project open in VS Code.
The terminal running npm run dev and printing the local development server address.
2 — Running the local development server.
The University Portal running in the browser, showing the course list for a signed-in student.
3 — The application running in the browser.
The University Portal repository on GitHub, showing the committed implementation.
4 — The working implementation committed to GitHub.
09

## Your Exercise

Now apply the complete workflow to the University Portal. Use the requirement and Excalidraw diagram below as the authoritative specification. Preserve every class, role, relationship, and constraint shown in the diagram.

Participant Exercise / Requirement Brief

University Portal

Build a role-based university portal where students manage course enrollment, instructors manage their assigned courses and grades, and administrators oversee accounts, courses, capacity, credit limits, and enrollment information.

Every person is represented by the shared User class. Their available information and actions depend on whether they are a Student, Instructor, or Administrator.

User Classes
  • User: shared parent class for every account
  • Student
  • Instructor
  • Administrator
User Data
  • User: name, ID, password, email, phone number, role, and address
  • Student: enrolled courses and credit limit
  • User information uses getters, setters, and validation
Domain Classes
  • Course: name, code, instructor, schedule, capacity, description, and enrollment status
  • ExamType: grades and exam type
  • Course and ExamType use getters, setters, and validation
Student Actions
  • Log in and log out
  • View available and enrolled courses
  • Enroll in or drop courses
  • View grades and exam types
  • Update personal information
  • View the credit limit and never enroll over it
Instructor Actions
  • Log in and log out
  • View students enrolled in assigned courses
  • Grade assignments and assign exam types
  • Update permitted course information
Administrator Actions
  • Log in and log out
  • Manage student and instructor accounts
  • Create and manage courses
  • Set course capacity and student credit limits
  • View enrollment statistics and generate reports
Controls & Relationships
  • Administrator controls course capacity and student credit limits
  • Instructor is assigned to courses and assigns grades and exam types
  • Student can view courses, exam types, and released grades
  • Course capacity determines whether a course is full
Scope
  • Each role sees and changes only what it is allowed to access
  • A student cannot enroll in a full course
  • A student cannot enroll beyond the credit limit
  • Validation protects all important updates

Decisions you need to make

The diagram defines the system structure, but you still need to decide how important user interactions behave.

Your workflow

  1. Read the University Portal requirement and inspect the complete Excalidraw diagram.
  2. Identify the User, Student, Instructor, Administrator, Course, and ExamType classes.
  3. Identify each class's attributes, methods, relationships, and validation responsibilities.
  4. Identify unclear interaction decisions without removing anything from the diagram.
  5. Create or refine the interface concept in Variant for all three roles.
  6. Open or create the project in Visual Studio Code.
  7. Install dependencies and verify that the project runs locally.
  8. Create or connect the project to a GitHub repository.
  9. Make an initial commit before major implementation begins.
  10. Choose one small University Portal feature to implement first.
  11. Write down its expected behavior and relevant constraints.
  12. Use Codex or Claude Code to assist with implementation.
  13. Review every generated change and confirm it matches the diagram.
  14. Run the application and test the implemented behavior.
  15. Investigate and debug anything that does not work.
  16. Verify the feature, then commit the working checkpoint.

You are done when...

10

## Troubleshooting

Something going wrong is part of development. Start with evidence.

If this happens

"The AI changed a lot of files and I don't know what happened."

Why it happensThe task may have been too broad, or the assistant may have made implementation decisions you did not expect.
What to doStop making additional changes. Review the changed files, ask the assistant to explain what it modified, run the application, and identify which parts actually work before continuing.
If this happens

"I gave AI a large task and now I cannot tell which part is broken."

Why it happensLarge changes introduce many possible failure points at once.
What to doReturn to the requirement and isolate the failing behavior. Define what should happen, what is actually happening, and which part of the application is most likely responsible.
If this happens

"My application will not run locally."

Possible causesMissing dependencies, the wrong directory, incorrect commands, configuration problems, occupied ports, or code errors.
What to doRead the terminal output first. Confirm the current directory. Check whether dependencies are installed. Check the scripts in package.json. Read the first useful error instead of only the final line of output.
If this happens

"The page loads, but the feature does not work."

Possible causesThe implementation may not match the expected behavior, an event handler may not run, data may not update correctly, or a runtime error may occur.
What to doCompare expected behavior with actual behavior. Check the browser console. Reproduce the problem consistently. Then give the AI assistant those observations.
If this happens

"The AI says it fixed the bug, but it is still broken."

Why it happensThe assistant may have made an incorrect diagnosis, may not have had enough evidence, or may have verified only that the code compiled.
What to doDo not keep asking for random fixes. Reproduce the failure again, collect new evidence, and update the debugging prompt with exactly what changed and what still fails.
If this happens

"Git says I have changes and I don't know whether I should commit them."

What to checkRun git status. Understand which files changed. Run and test the application.
What to doCommit when the project is in a meaningful state you would be comfortable returning to later.
Instructor help is not the last resort. If you have collected evidence but still do not understand what is happening, show the instructor what you expected, what you observed, and what you already tried.
11

## Self-Check Before You Leave

If you cannot complete one of these, ask an instructor before the workshop ends.

12

## Resources

Use official documentation when you need to go beyond what we covered in the workshop.

Your goal is not to memorize everything. Know the workflow, know how to find evidence when something goes wrong, and know where to find documentation when you need more information.