Part 0: Intro
Never coded before? Perfect! That's exactly who this is for.
What this tutorial will show you is:
- ✅ Understand what AI coding assistants are and how they work
- ✅ Use AI (Claude or ChatGPT) to build a real web application
- ✅ Deploy Your Own App to a public URL you can share
- ✅ Know how to repeat this process for your own business ideas
The Big Reveal: We're going to build and deploy a complete app from scratch. No coding experience required - AI does the heavy lifting, you make the decisions.
What to expect: This tutorial will guide you step by step. If something breaks, ask your Ai to troubleshooting.
Tutorial Path
Follow the flow below in full if it is your first time programming. The Requirements Installation Checklist is required before you start. If you know what a IDE is, Programming Languages & Frameworks are, Data bases, feel free to skip to Part 2 after you completed the Requirements Installation Checklist. It's the fastest path. All action prompts are labeled Run this prompt in your AI.
- Part 1: Understanding the Landscape (20 min)
- Part 2: The App We're Building (10 min)
- Part 3: The Art of Prompting AI (25 min)
- Part 4: Getting Started with VS Code and Ready to Prompting
- Part 5: Planning Phase (Align Before You Build) (10 min)
- Part 6: Build Phase (Implement the App) (45 min)
- Part 7: Deployment to Production (30 min)
- Part 8: What Just Happened? (15 min)
- Part 9: Make It Your Own (20 min)
- Part 10: Wrap-Up and Next Steps (15 min)
- Part 11: Advanced: Level Up
Requirements Installation Checklist
All items will be explained in the section below.
1. VS Code (Code Editor)
- Download: https://code.visualstudio.com
- Run installer, accept defaults, open it once
2. Python 3.11+ (Programming Language)
- Download: https://python.org
- ⚠️ IMPORTANT: Check "Add Python to PATH" during install
- Test: Open Terminal/Command Prompt, type
python3 --versionClick to copy(Mac) orpython --versionClick to copy(Windows)
3. Git (Version Control)
- Download: https://git-scm.com
- Run installer, accept defaults
- Test: Type
git --versionClick to copyin Terminal/Command Prompt
4. Create Free Accounts
GitHub (for storing your code):
- Sign up: https://github.com/signup
- Pick a username you're comfortable sharing
PythonAnywhere (for hosting your app):
- Sign up: https://www.pythonanywhere.com
- Click "Create a Beginner account" (free forever)
- Your username becomes your URL:
yourname.pythonanywhere.comClick to copy
5. Setup the AI Assistant
You'll want a subscription to Claude, ChatGPT, or Gemini. If you are already paying for one of these, use that one.
Install the VS Code Extension
If this is your first time in VS Code, here's how to install an extension:
- Open VS Code
- Look at the left sidebar and click the Extensions icon (it looks like four squares)
- A search box will appear at the top of the Extensions panel
- Type the extension name as displayed in the check boxes below
- Locate the one with the green check box (this means its the office extension) and click Install
Install ONE of these:
- Claude: Search for
Claude CodeClick to copy - ChatGPT: Search for
CodexClick to copy - Gemini: Search for
Gemini Code AssistClick to copy
Note: All three AI assistants have free tiers available, but a paid subscription gives you higher usage limits and better models.
- Claude Code - Great for longer context and coding
- ChatGPT Codex - Well-known, reliable and context writing
- Gemini Code Assist - Google's AI with 180K/month free code completions
Optional Context: If you already know what an IDE is, how AI assistants work, what a database is, how Git/GitHub works, and what a hosting platform does, skip to Part 3.
Part 1: Understanding the Landscape (20 min)
Now that you have your tools installed, let's talk about what each piece actually does and how they work together.
What is an IDE (Integrated Development Environment)?
Simple Definition: An IDE is a fancy text editor specifically designed for writing code.
VS Code (What We're Using):
- Free, made by Microsoft
- Most popular editor in the world
- Works with every programming language
- Has built-in terminal
- Supports extensions (like Claude, GitHub Copilot)
Alternatives You Might Hear About:
- Cursor - VS Code fork with AI built-in
- Windsurf - New AI-first IDE
- PyCharm - Popular for Python (heavy but powerful)
- Sublime Text - Fast and lightweight
What Makes an IDE Better Than Notepad?
- Syntax highlighting (colors make code readable)
- Auto-completion (suggests as you type)
- Debugging tools (find and fix errors)
- Terminal access (run commands without leaving editor)
- Git integration (version control in the UI)
What is AI and Why Does It Matter for Building Apps?
The AI Companies You Should Know:
-
OpenAI (ChatGPT)
- Created GPT-4, GPT-4o, and o1
- Most well-known consumer AI
- Great for general questions and brainstorming
- ChatGPT available for coding help
- https://chatgpt.com/
-
Anthropic (Claude)
- Created Claude (Opus, Sonnet, Haiku models)
- Known for longer context and coding ability
- Claude for coding help
- https://claude.ai/
-
Google (Gemini)
- Formerly Bard
- Strong multimodal capabilities
- Deep Google integration
- https://gemini.google.com/
-
X (Grok)
- Created by xAI (Elon Musk's AI company)
- Real-time access to X (Twitter) data
- Known for more conversational, less filtered responses
- https://x.ai
-
Meta (Llama)
- Open source models
- Free to use and customize
- Popular with developers
- https://www.llama.com/
Why This Matters: These AIs have gone from "chatting" to "doing" – they can now write production code, debug issues, and help deploy applications.
How We'll Use AI to Code Today
We'll use a VS Code extension. It's the simplest and most reliable option for this tutorial.
What it is: A visual panel inside VS Code where you chat with AI and see changes happen in real-time.
How it works:
- Open VS Code, start a new project.
- Open the Claude, Codex, or Gemini panel in VS Code (click the icon in the sidebar, on the left)
- Type what you want in plain English
- AI shows you what it's going to do
- You click "Accept" or "Reject"
- Changes appear in your files automatically
Programming Languages & Frameworks
The Landscape:
-
Python + Django ⭐ (What We're Using)
- Language: Python (easy to read, popular for data/AI)
- Framework: Django (full-featured web framework)
- Philosophy: "Batteries included" – everything you need built-in
- Best for: MVPs, internal tools, apps that will need user auth
- Used by: Instagram, Spotify, Dropbox
-
Ruby + Rails
- Language: Ruby (elegant and readable)
- Framework: Ruby on Rails
- Philosophy: "Convention over configuration" – smart defaults
- Best for: Rapid prototyping, startups
- Used by: GitHub, Shopify, Basecamp
-
JavaScript + Node.js Stack
- Language: JavaScript (same language as web browsers)
- Frameworks: Express, Nest, Next.js
- Philosophy: Same language front and back-end
- Best for: Real-time apps, single-page applications
- Used by: Netflix, PayPal, LinkedIn
The Real Reason: If your Investment Board works and you want to add user authentication, team permissions, deal room access – Django makes that pivot easy.
What is a Database?
Simple Definition: A database is like a smart filing cabinet where your app stores and organizes information.
Think of it like this:
- Your code is the storefront of a shop
- The database is the warehouse in the back
- When a customer (user) asks for something, your code goes to the warehouse (database) to get it
Common Databases:
-
SQLite ⭐ (for simple apps)
- Type: File-based database
- Think of it as: A single Excel file that your app uses
- Why it's great for learning:
- No setup required - it just works
- Stored as a simple file (db.sqlite3)
- Perfect for small to medium apps
- Easy to understand and debug
- Used by: Firefox bookmarks, iPhone apps, small websites
-
PostgreSQL
- Type: Server-based database
- Think of it as: A dedicated warehouse with its own address
- Why professionals use it:
- Handles millions of records efficiently
- Multiple apps can share the same database
- More features for complex queries
- Better for teams and large projects
- Used by: Instagram, Spotify, Reddit
-
MySQL
- Type: Server-based database
- Think of it as: Similar to PostgreSQL, slightly different features
- Why it's popular:
- Been around forever (reliable)
- Easy to find hosting
- Good for content-heavy sites
- Used by: WordPress, Facebook (historically)
When you'd upgrade to PostgreSQL/MySQL:
- More than 100,000 records
- Multiple people writing to database simultaneously
- Need advanced features (full-text search, JSON columns)
- Running on platforms that don't support SQLite
SQLite is perfect. One less thing to worry about.
What is Version Control (Git/GitHub)?
Simple Definition: Version control is like "Track Changes" in Google Docs, but for your entire project.
Think of it like this:
- Git = Time machine for your code (save points you can go back to)
- GitHub = Google Drive for code (cloud storage + sharing)
What Git Does:
Imagine you're writing a novel:
- Git keeps a copy of every draft you've ever saved
- If Chapter 5 breaks, you can roll back to yesterday's version
- You can try experimental ideas on a "branch" without ruining the main story
- You can see exactly what changed between drafts
What GitHub Does:
GitHub takes your local Git history and:
- Stores it in the cloud - your code is backed up
- Lets you share - teammates can see your work
- Enables deployment - platforms like PythonAnywhere can pull your code automatically
- Tracks collaboration - who changed what and when
The Basic Git Workflow :
1. git init → "Start tracking this project"
2. git add . → "Mark all files to be saved"
3. git commit → "Save a snapshot with a message"
4. git push → "Upload to GitHub (cloud backup)"
Click to copy
Why This Matters:
Without Git/GitHub:
- ❌ Code only on your laptop (no backup)
- ❌ Can't deploy to the internet easily
- ❌ Hard to share or collaborate
- ❌ Can't undo mistakes easily
With Git/GitHub:
- ✅ Code backed up in the cloud
- ✅ Deployment platforms (like PythonAnywhere) can grab your code
- ✅ Share a link to your code
- ✅ Roll back if something breaks
What is a Hosting Platform?
Simple Definition: A hosting platform is where your app lives on the internet so other people can use it.
Think of it like this:
- Your laptop = Your home office
- Hosting platform = Renting office space downtown where customers can visit
When you run your app locally:
- Only works on your computer
- URL is
localhost:8000Click to copy(only you can see this) - Stops working when you close your laptop
- Can't share with teammates or clients
When you deploy to a hosting platform:
- Works from anywhere in the world
- URL is
yourname.pythonanywhere.comClick to copy(public link) - Runs 24/7 even when your laptop is off
- Anyone can visit and use it
Popular Hosting Platforms:
- PythonAnywhere ⭐ (What We're Using Tonight)
- Best for: Django apps, beginners, learning
- Free tier: Forever free with one app
- Why we chose it:
- Built specifically for Python/Django
- SQLite works perfectly (no database setup)
- Free forever (no credit card required)
- Easy web-based interface
- Perfect for: Workshops, demos, small projects
Why PythonAnywhere?
| Factor | PythonAnywhere | Others |
|---|---|---|
| Setup time | 5 minutes | 15-30 minutes |
| Works with SQLite | ✅ Yes | ❌ Most don't |
| Free forever | ✅ Yes | ⚠️ Limited or paid |
| Beginner-friendly | ✅ Very | ⚠️ Medium |
| Your app stays online | ✅ 24/7 | ⚠️ Some sleep |
What Happens When You Deploy:
- You push your code to GitHub (cloud storage for code)
- We then pull from GitHub to PythonAnywhere
- PythonAnywhere runs your Django app on their servers
- You get a public URL:
yourname.pythonanywhere.comClick to copy - Anyone can visit that URL and use your app
The Tools We Use
| Tool | Purpose | What It Does |
|---|---|---|
| AI Assistant (Claude, ChatGPT, or Gemini) | AI coding assistant | Writes code, creates files, runs commands |
| VS Code | Code editor | Where you view and edit files |
| Python + Django | Programming language + framework | What the app is built with |
| SQLite | Database | Where data is stored (simple, no setup) |
| Git + GitHub | Version control | Saves history, enables cloud storage |
| PythonAnywhere | Hosting platform | Makes your app publicly accessible |
The Workflow:
You (business idea)
↓
AI assistant (generates code)
↓
VS Code (you review it)
↓
Git/GitHub (save and push to cloud)
↓
PythonAnywhere (pull from GitHub and deploy)
↓
Live URL (share with team)
Click to copy
Part 2: The App We're Building (10 min)
A Simple Introducing Investment Opportunities Board
The Business Need: You're evaluating multiple investment opportunities – real estate deals, stock picks, business acquisitions, private equity. Right now:
- Opportunities tracked in spreadsheets or email
- No clear workflow from sourcing to decision
- Hard to see pipeline value or compare opportunities
- No record of why deals passed or moved forward
- Can't easily see what's stuck in due diligence
The Solution: A Kanban-style board that tracks investment opportunities through evaluation stages with key metrics and decision tracking.
Core Features (In Scope):
- ✅ Add investment opportunity (name, type, amount, ROI estimate)
- ✅ Assign stage: Sourced → Screening → Due Diligence → Committee Review → Decision
- ✅ Move opportunities between stages
- ✅ Mark final decision: Invest / Pass / Hold
- ✅ View by stage or filter by type
- ✅ See total capital in pipeline
- ✅ Add notes/thesis for each opportunity
Explicitly Out of Scope (For Now):
- ❌ No user accounts or login (single-user MVP)
- ❌ No file uploads or document storage
- ❌ No notifications or alerts
- ❌ No external data integrations (stock APIs, etc.)
- ❌ No complex financial modeling
Why These Constraints?
- Gets us from idea → deployed in 2 hours
- Forces clarity on core workflow
- Can add complexity later once we validate the concept
- AI works better with clear boundaries
What Success Looks Like:
By end of today, you'll have a URL like yourname.pythonanywhere.comClick to copy where you can:
- Add "Industrial Warehouse - Denver" → Type: Real Estate → Amount: $2.5M → ROI: 12%
- Move it from "Sourced" to "Due Diligence"
- See total pipeline value across all stages
- Mark it as "Invest" with a note on why
- Filter to see only Real Estate opportunities
Part 3: The Art of Prompting AI (25 min)
Before we write any code, we need to learn how to communicate with the AI. A clear, detailed prompt gives it the context and constraints it needs to build the right thing the first time.
Why AI Needs Good Prompts: The New Hire Analogy
Here's the truth that most people miss: AI is incredibly powerful, but it's not a mind reader.
Imagine this scenario:
You hire a smart developer. On their first day, you walk up and say:
"Build me an investment tracking app."
Then you walk away.
What happens?
- They have NO idea what features you want
- They don't know your industry (real estate? stocks? both?)
- They don't know how YOU think about investments
- They'll make assumptions (probably wrong ones)
- They'll build SOMETHING, but it won't be what you wanted
This is exactly what happens when you give AI a vague prompt.
The mindset shift:
❌ Wrong: "AI should just figure it out" ✅ Right: "I need to onboard AI like a new team member"
❌ Wrong: "This AI is dumb, it didn't understand me" ✅ Right: "I didn't give it enough context to succeed"
❌ Wrong: "Just build me a Django app" ✅ Right: "Let me explain the problem, constraints, and what success looks like"
The Right Way: Structured Prompting
Think of prompting as a conversation, not a command.
Use this order:
- What you want (the simple goal in one sentence)
- What it must do (the must-have features)
- What it should NOT do (the off-limits list)
- How it should feel (simple, clean, fast, etc.)
- Ask AI to repeat back (so you can confirm)
Why this works: clear goals and limits stop the AI from guessing.
Simple prompt example:
Do not code anything, we are in the planing phase. I want a simple investment board to track deals using Django programming language. It should let me add an opportunity, move it through stages, and see totals. I do not want login, file uploads, or notifications. Keep it simple and clean. Do not try to please me. If something I said is unclear, incomplete, or you need more detial,tell me and ask questions. Challenge my assumptions before you write any code. Provide me a break down of the app with workflows and features. We will continue to talk back and forth until we both agree the app is ready for developement.
Click to copy
Prompting Tips
These are the high-leverage prompts that prevent confusion and bad assumptions. They should be incorporated into your prompt during the planning process before you start coding.
Ask the AI to challenge you:
Do not try to please me. If something I said is unclear, incomplete, or risky,tell me and ask questions. Challenge my assumptions before you write any code.
Click to copy
Ask the AI to interview you:
Before you start coding, ask me clarifying questions about features, users, data fields, edge cases, and constraints. Do not guess.
Click to copy
Ask for beginner-friendly language (if needed):
Explain things to me like I have never coded before. Avoid jargon.
Click to copy
Ask for a read-back summary:
Summarize what you think I want to build in 5-7 bullets, then ask me to confirm or correct anything before you implement.
Click to copy
Ask for a short plan:
Give me a simple, step-by-step plan before you start coding.
Click to copy
Ask for tradeoffs when choices exist:
If there are multiple ways to build something, show me 2-3 options with pros/cons and your recommendation.
Click to copy
Part 4: Getting Started with VS Code and Ready to Prompt
Get the prompt window open
- On your desktop create a folder and name it
test-financial-appClick to copy - Now open VS Code
- In the top menu, click File → Open Folder. Navigate to the Desktop folder named
test-financial-appClick to copy, select it, and click Open.- For every app you are creating, you must create a new folder. All code for that app will live in that folder. Mixing 2 apps in 1 folder will brake the app.
- If Copilot chat automatically opened, close the window as we will not be using Copilot.
- On the left-hand menu bar, you should see the logo for the AI extension you installed. Click it.
- If this is your first time opening the extension, the AI agent will ask you to log in.
- If you have already logged in, type
testClick to copyin the prompt box to confirm the AI responds. - Congratulations, you are ready to start prompting!
Get the terminal window open
The terminal is a simple text window where you run commands to set up and test your app. It's not hacking. It's just how you talk to your computer. The AI may ask you to run commands from time to time. This is where you run them if the AI can't.
- In VS Code, click Terminal in the top menu bar
- Click New Terminal
- A panel opens at the bottom of VS Code – that's your terminal
- You'll see a blinking cursor and a prompt (often a
$Click to copyor>Click to copy). That's normal. - Leave it open. You'll use it to run commands like starting the app
Part 5: Planning Phase (Align Before You Build) (10 min)
What this is: A short back-and-forth with AI to confirm you both agree on the app before any code is written.
Copy and paste the prompt below into the AI panel in VS Code.
Do not write any code yet. I'm in the planning phase. I want a simple investment board to track deals using Django programming language. It should let me add an opportunity, move it through stages, and see totals. I do not want login, file uploads, or notifications. Keep it simple and clean. Do not try to please me. If anything is unclear or missing, ask me questions and challenge my assumptions. First, summarize what you think I want to build, then give me a simple breakdown of features and user workflow. We'll keep refining until we agree it's ready to build.
Click to copy
Continue the conversation with the AI agent. Ask for ideas and clarifications until the plan feels solid.
If you like where your planning conversation ended, skip the optional prompt below and go to Part 6, Step 1. If you did NOT do your own planning, use the optional prompt below, then go to Part 6, Step 1. Do NOT run both prompts.
Optional Course Planning Prompt (Only use this if you didn't already do your own planning) (5 min)
Run this prompt in your AI:
Do not write any code yet. I'm in the planning phase. I want to build an investment tracking app called Investment Opportunities Board
to manage deal flow from sourcing through decision.
## In-Scope Features
- Add opportunity (name, type, amount, ROI%, risk level, thesis/notes)
- Types: Real Estate, Stocks, Business Acquisition, Private Equity
- Stages: Sourced → Screening → Due Diligence → Committee Review → Decision
- Move opportunities between stages
- Mark final decision: Invest / Pass / Hold
- View by stage (Kanban-style) or filter by type
- See total capital in pipeline per stage
- Add/edit notes on each opportunity
## Out of Scope
- No user accounts or authentication
- No file uploads or document storage
- No notifications
- No external APIs (stock data, etc.)
- No complex financial calculations beyond simple totals
## Technical Stack
- Framework: Django
- Database: SQLite
- Templates: Django templates + HTMX for smooth stage transitions
- Styling: Tailwind CSS via CDN
Please help me:
1. Define the Django data models needed (Opportunity model)
2. Describe the page structure (Kanban board view, detail view)
3. Outline the user workflow
4. Create an implementation plan
Keep it simple and readable. Optimize for shipping quickly.
Click to copy
If the AI asks questions, answer them. Then continue to Part 6, Step 1.
Part 6: Build Phase (Implement the App) (45 min)
Use AI for command blocks only. Any clicks in the browser or VS Code are done by you.
Step 1: Project Initialization (8 min)
What we're doing: Now we actually create the project files.
Run this prompt in your AI:
Create a new Django project called investment_board with:
- A Django app called 'opportunities'
- SQLite database (default)
- requirements.txt with Django and other dependencies
- Basic settings configured
- Ready for server-rendered templates
- Include Tailwind CSS via CDN in base template
Click to copy
Press Enter and wait for AI to create the files. If your AI asks for confirmation, approve the changes.
Watch AI work:
- Create project structure
- Generate
manage.pyClick to copy,settings.pyClick to copy, etc. - Set up the
opportunitiesClick to copyapp - Create initial templates folder
- Write
requirements.txtClick to copy
What you'll see:
investment_board/
├── investment_board/ # Project settings
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
├── opportunities/ # Our app
│ ├── models.py
│ ├── views.py
│ ├── urls.py
│ ├── templates/
├── manage.py # Django management tool
├── requirements.txt # Dependencies
Click to copy
Install dependencies:
Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
cd Desktop/test-financial-app
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Click to copy
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
cd Desktop\test-financial-app
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
Click to copy
What this does: Creates a safe "sandbox" for your project and installs Django. You'll see (venv)Click to copy appear in your terminal - that's good!
Checkpoint: ✅ Project structure created
Step 2: Define Data Models (10 min)
What we're doing: Creating the database structure for investment opportunities.
Run this prompt in your AI:
Create a Django model for Investment Opportunities with:
- name (CharField, max 200 characters)
- opportunity_type (CharField with choices: Real Estate, Stocks, Business Acquisition, Private Equity)
- amount (DecimalField for investment amount)
- roi_estimate (DecimalField for ROI percentage)
- risk_level (CharField with choices: Low, Medium, High)
- stage (CharField with choices: Sourced, Screening, Due Diligence, Committee Review, Decision)
- decision (CharField with choices: Pending, Invest, Pass, Hold)
- thesis_notes (TextField for investment thesis and notes)
- created_at (DateTimeField, auto-populated)
- updated_at (DateTimeField, auto-updated)
Register it in admin.py so I can manage opportunities.
Include __str__ method that shows name and type.
Click to copy
What AI creates in opportunities/models.pyClick to copy:
from django.db import models
class Opportunity(models.Model):
TYPE_CHOICES = [
('real_estate', 'Real Estate'),
('stocks', 'Stocks'),
('business', 'Business Acquisition'),
('private_equity', 'Private Equity'),
]
STAGE_CHOICES = [
('sourced', 'Sourced'),
('screening', 'Screening'),
('due_diligence', 'Due Diligence'),
('committee', 'Committee Review'),
('decision', 'Decision'),
]
RISK_CHOICES = [
('low', 'Low'),
('medium', 'Medium'),
('high', 'High'),
]
DECISION_CHOICES = [
('pending', 'Pending'),
('invest', 'Invest'),
('pass', 'Pass'),
('hold', 'Hold'),
]
name = models.CharField(max_length=200)
opportunity_type = models.CharField(max_length=20, choices=TYPE_CHOICES)
amount = models.DecimalField(max_digits=12, decimal_places=2)
roi_estimate = models.DecimalField(max_digits=5, decimal_places=2)
risk_level = models.CharField(max_length=10, choices=RISK_CHOICES)
stage = models.CharField(max_length=20, choices=STAGE_CHOICES, default='sourced')
decision = models.CharField(max_length=10, choices=DECISION_CHOICES, default='pending')
thesis_notes = models.TextField(blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['-created_at']
verbose_name_plural = 'Opportunities'
def __str__(self):
return f"{self.name} ({self.get_opportunity_type_display()})"
Click to copy
Why Django is great here:
- Multiple
CHOICESClick to copycreate dropdowns automatically DecimalFieldClick to copyhandles money and percentages preciselyauto_nowClick to copytracks when opportunities are updatedget_opportunity_type_display()Click to copyshows human-readable labels- Admin interface is automatically generated
Run migrations:
Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
python3 manage.py makemigrations
python3 manage.py migrate
Click to copy
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
python manage.py makemigrations
python manage.py migrate
Click to copy
What this does: Tells Django to create the database tables. You'll see some green text - that's good!
Create admin user:
Use the same terminal window you already opened above.
Make sure you are in the test-financial-appClick to copy folder.
Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
# Mac users: use python3
# Windows users: use python
python manage.py createsuperuser
Click to copy
Then answer the prompts:
- Username: Just type
adminClick to copyand press Enter - Email: Type your email (or make one up) and press Enter
- Password: Type a password (it won't show on screen - that's normal!)
- Password again: Type the same password
Don't forget your password! Write it down if needed.
Test the admin panel:
Use the same terminal window you already opened above.
Make sure you are in the test-financial-appClick to copy folder.
Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
# Mac: python3 manage.py runserver
# Windows: python manage.py runserver
python manage.py runserver
Click to copy
You'll see: Some text ending with "Starting development server at http://127.0.0.1:8000/"
Now: Open your web browser and go to http://localhost:8000/adminClick to copy
Log in with adminClick to copy and the password you just created.
Try this now: Add a sample opportunity through the admin panel (3 min)
Example to add:
- Name: "Industrial Warehouse - Denver"
- Type: Real Estate
- Amount: 2500000
- ROI: 12
- Risk: Medium
Checkpoint: ✅ Data model created and working
Step 3: Build the Board View (12 min)
What we're doing: Creating the main Kanban-style board page that shows opportunities by stage.
Run this prompt in your AI:
Create a Django view and template for the Investment Board homepage that:
- Shows opportunities grouped by stage (Sourced, Screening, Due Diligence, Committee Review, Decision)
- Display as Kanban board with columns for each stage
- Show opportunity name, type, amount, ROI%, risk level in each card
- Filter buttons by type (All, Real Estate, Stocks, Business, Private Equity)
- Form to add new opportunity
- Show total capital in pipeline at the top
- Uses Tailwind CSS for professional styling with cards and columns
- Make it look like an investment dashboard
Click to copy
Step 4: Add HTMX for Smooth Stage Transitions (10 min)
What is HTMX?
Don't let the name scare you! HTMX is just a tool that makes your app feel modern without you needing to know JavaScript.
In plain English:
- Without HTMX: Click button → whole page refreshes (like old websites)
- With HTMX: Click button → just that part updates smoothly (like modern apps)
- You don't need to understand how it works - AI will add it for us
What we're doing: Making stage transitions smooth - move opportunities between stages without the page refreshing.
Run this prompt in your AI:
Add HTMX to enable smooth stage transitions:
- Include HTMX via CDN in base template
- Create a move_stage view that updates opportunity stage
- Add next/previous stage buttons on each opportunity card
- Update the board without full page reload
- Show visual feedback during transition
- Update total pipeline value if needed
Click to copy
Step 5: Polish and Test (5 min)
Final touches:
Run this prompt in your AI:
Review the app and:
- Make sure all pages look consistent
- Add empty states (what shows when there are no opportunities?)
- Add basic validation (don't allow empty submissions)
- Make sure type filter shows active state
- Test that everything works together
Click to copy
Testing checklist:
- Try creating opportunities
- Try filtering by type
- Try moving stages
- Try breaking it (empty fields, huge numbers, etc.)
Fix any issues with AI:
Just paste the error message to your AI:
I'm getting this error: [paste error]. Fix it.
Click to copy
Checkpoint: ✅ App is fully functional locally
Part 7: Deployment to Production (30 min)
Step 1: Prepare for Deployment (5 min)
What we're doing: Making sure our code is ready to push to GitHub.
Run this prompt in your AI:
Prepare this Django app for deployment:
- Make sure requirements.txt is complete
- Create .gitignore for Python/Django projects
- Update settings.py to allow PythonAnywhere domain
Click to copy
Step 2: Push to GitHub (8 min)
What we're doing: Uploading your code to GitHub (think of it as Google Drive for code).
Why? PythonAnywhere needs to grab your code from somewhere to deploy it. GitHub is that somewhere!
Step 1: Tell Git about your project
Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
git init
git add .
git commit -m "Initial commit: Investment Opportunities Board MVP"
Click to copy
What this does:
git initClick to copy= "Hey Git, track this project"git add .Click to copy= "Include all my files"git commitClick to copy= "Save a snapshot with this message"
You might see some text scroll by - that's normal!
Step 2: Create a GitHub Repository
Easiest Way (GitHub Website):
- Go to: https://github.com/new
- Log in if prompted
- Repository name: Type
investment-boardClick to copy - Keep it Public (already selected)
- DO NOT check "Initialize with README"
- Click "Create repository"
You'll see a page with commands. IGNORE THEM! Do this instead:
Step 3: Connect your code to GitHub
In your terminal, type these commands one at a time:
Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
# Replace YOUR_USERNAME with your actual GitHub username
git remote add origin https://github.com/YOUR_USERNAME/investment-board.git
git branch -M main
git push -u origin main
Click to copy
Example: If your GitHub username is jsmithClick to copy, the first command would be:
Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
git remote add origin https://github.com/jsmith/investment-board.git
Click to copy
What to expect:
- You might be asked to log in to GitHub - do it!
- You'll see text scrolling - that's your code uploading
- When it's done, you'll see "Branch 'main' set up to track..."
Step 4: Verify it worked
Go to https://github.com/YOUR_USERNAME/investment-boardClick to copy (use YOUR username)
You should see: All your project files listed!
Checkpoint: ✅ Code is on GitHub
Step 3: Deploy on PythonAnywhere (15 min)
What we're doing: Taking our app and putting it on the internet so anyone can access it!
Step-by-Step Deployment:
All commands in this section run inside PythonAnywhere, not on your computer.
1. Create PythonAnywhere Account
- Open https://www.pythonanywhere.com in your browser
- Click "Start running Python online" or "Pricing & signup"
- Click "Create a Beginner account" (the free one)
- Fill in username, email, password
- Choose a good username - this will be in your URL:
username.pythonanywhere.comClick to copy
2. Open a Bash Console
- After logging in, click "Consoles" tab at the top
- Click "Bash" to open a new console
- You'll see a terminal (looks like Mac/Windows terminal)
This is where we'll set up your app! This is a separate terminal inside PythonAnywhere (not your computer).
3. Clone Your Code from GitHub
You are now in PythonAnywhere, not on your computer.
In the PythonAnywhere Bash console, run:
git clone https://github.com/YOUR_USERNAME/investment-board.git
cd investment-board
Click to copy
Replace YOUR_USERNAME with your actual GitHub username!
What this does: Downloads your code from GitHub onto PythonAnywhere's servers.
4. Create a Virtual Environment (PythonAnywhere)
Ask your AI to run the commands below in your PythonAnywhere Bash console. If it can't, run them manually in the PythonAnywhere Bash console.
python3.10 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Click to copy
If python3.10Click to copy fails, try python3.11Click to copy.
5. Run Migrations (PythonAnywhere)
Ask your AI to run the commands below in your PythonAnywhere Bash console. If it can't, run them manually in the PythonAnywhere Bash console.
python manage.py migrate
python manage.py collectstatic --noinput
Click to copy
What this does: Sets up your SQLite database on PythonAnywhere.
6. Create a Superuser
Ask your AI to run the commands below in your PythonAnywhere Bash console. If it can't, run them manually in the PythonAnywhere Bash console.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
python manage.py createsuperuser
Click to copy
Fill in:
- Username:
adminClick to copy - Email: (your email)
- Password: (same as you used locally)
7. Set Up the Web App
Now go back to the PythonAnywhere dashboard:
- Click "Web" tab at the top
- Click "Add a new web app"
- Click "Next" (accept the domain
yourusername.pythonanywhere.comClick to copy) - Select "Manual configuration"
- Select "Python 3.10"
- Click "Next"
8. Configure the Web App
You'll see a configuration page. Scroll down and fill in:
Code section:
- Source code:
/home/yourusername/investment-boardClick to copy - Working directory:
/home/yourusername/investment-boardClick to copy
Virtualenv section:
- Virtualenv path:
/home/yourusername/investment-board/venvClick to copy
WSGI configuration file:
- Click the link that says
/var/www/yourusername_pythonanywhere_com_wsgi.pyClick to copy - Delete everything in the file
- Paste this code:
import os
import sys
# Add your project directory to the sys.path
project_home = '/home/yourusername/investment-board'
if project_home not in sys.path:
sys.path.insert(0, project_home)
# Set environment variable to tell Django where settings are
os.environ['DJANGO_SETTINGS_MODULE'] = 'investment_board.settings'
# Import Django's WSGI handler
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Click to copy
Replace yourusernameClick to copy with your actual PythonAnywhere username! (appears in 2 places)
- Click "Save" (top right)
9. Reload Your Web App
- Go back to the "Web" tab
- Scroll to the top
- Click the big green "Reload yourusername.pythonanywhere.com" button
THE BIG MOMENT
YOUR APP IS LIVE ON THE INTERNET!
Your app is now at:
https://yourusername.pythonanywhere.com
Click to copy
Click the link at the top of the Web tab! Or type it into your browser.
🥳 CELEBRATE! Click your URL and see it live.
Now let's test it together:
- Share your URL in the group chat - We all want to see what you built!
- Add an investment opportunity - Try it from your phone
- Move it between stages - Click the Next/Previous buttons
- Filter by type - See only Real Estate or only Stocks
- Check the pipeline value - See the total at the top
Here's the crazy part: Anyone with this URL can now use your app. Your friend across the country could add an opportunity right now.
What you just accomplished:
✅ Built a database-backed web application ✅ Made it interactive with HTMX ✅ Deployed it to production ✅ Got a public URL anyone can visit
And you did it in under 2 hours.
This is REAL software. Not a tutorial. Not a toy. A real, working application on the internet.
Checkpoint: ✅ Investment Opportunities Board is live on the internet
Screenshot time! 📸 Take a screenshot of your app and post it!
Step 4: Updating Your App Later (5 min)
What we're covering: How to update your live app when you make changes.
The scenario: You're home after the tutorial. You add a new feature locally and want to deploy it.
The 3-Command Update Process:
Whenever you make changes and want to update your live site:
1. Push your changes to GitHub (on your laptop): Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
git add .
git commit -m "Added new feature"
git push
Click to copy
2. Log into PythonAnywhere (web browser):
- Go to https://www.pythonanywhere.com
- Click "Consoles" → "Bash"
3. Run these 3 commands (in PythonAnywhere console): Ask your AI to run the commands below. If it can't, run them manually in your terminal.
On Mac:
- Press
Command + SpaceClick to copy - Type
TerminalClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
On Windows:
- Press the
WindowsClick to copykey - Type
cmdClick to copy - Press
EnterClick to copy - Type the commands and press
EnterClick to copyafter each line
cd ~/investment-board
git pull
touch /var/www/yourusername_pythonanywhere_com_wsgi.py
Click to copy
Replace yourusernameClick to copy with your actual username!
That's it! Your site is updated.
What each command does:
cd ~/investment-boardClick to copy→ Go to your project foldergit pullClick to copy→ Download latest code from GitHubtouch /var/www/yourusername_pythonanywhere_com_wsgi.pyClick to copy→ Tell PythonAnywhere to reload
Pro tip: Create an update script
To make it even easier, create a file called update.shClick to copy:
In your PythonAnywhere Bash console:
cd ~/investment-board
nano update.sh
Click to copy
#!/bin/bash
cd ~/investment-board
git pull
touch /var/www/yourusername_pythonanywhere_com_wsgi.py
echo "✅ Site updated!"
Click to copy
Press Ctrl+OClick to copy to save, EnterClick to copy, then Ctrl+XClick to copy to exit.
Make it executable: Ask your AI to run the commands below. If it can't, run them manually in your terminal.
chmod +x update.sh
Click to copy
Now updating is ONE command: Ask your AI to run the commands below. If it can't, run them manually in your terminal.
bash ~/investment-board/update.sh
Click to copy
Checkpoint: ✅ You know how to update your app forever
Part 8: What Just Happened? (15 min)
The Honest Reality Check
What AI is Great At:
- ✅ Boilerplate and setup (90% of project initialization)
- ✅ Following established patterns (Django conventions)
- ✅ Explaining code (better than documentation sometimes)
- ✅ Debugging common errors
- ✅ Generating test data
- ✅ Writing repetitive code
Where You Still Need Skills:
- ⚠️ Business logic (what makes your app unique)
- ⚠️ Edge cases and validation
- ⚠️ Performance optimization
- ⚠️ Security considerations
- ⚠️ Knowing when something is wrong
- ⚠️ Asking the right questions
The New Skill Set:
- Clear communication (describing intent precisely)
- Critical thinking (does this make sense?)
- Product sense (what should we build?)
- Testing mindset (how do I break this?)
- Pattern recognition (spotting AI mistakes)
You're not replacing developers. You're becoming a different kind of builder.
Part 9: Make It Your Own (20 min)
Optional Challenges
Option 1: Add a Feature to Investment Board
Pick one:
- Add ability to mark decision (Invest/Pass/Hold) and reason
- Show days in current stage for each opportunity
- Create a dashboard with total invested vs. passed
- Add expected close date and highlight overdue opportunities
- Add ability to archive completed opportunities
- Show ROI comparison across all opportunities
How to do it:
Just tell your AI:
Add [feature description] to Investment Opportunities Board.
Keep it simple and consistent with existing code.
Click to copy
Option 2: Start Your Own App
Brainstorm ideas:
- Expense tracker for team
- Simple inventory system
- Meeting notes repository
- Client status board
- Project milestone tracker
Use the same process:
- Describe it to your AI
- Define core features (max 5)
- Explicit non-goals
- Let AI structure it
- Build it step by step
Part 10: Wrap-Up and Next Steps (15 min)
What You Accomplished Tonight
You:
- ✅ Learned about AI coding tools and how they work
- ✅ Understood programming languages and frameworks
- ✅ Built a full Django web application
- ✅ Deployed it to a production URL
- ✅ Have a working example to reference
- ✅ Know the process to repeat this
That's legitimately impressive.
Most people talk about "learning to code someday." You shipped a product today.
Optional Reflection
Quick recap of what you did:
-
Described a business need in plain English
- Not technical specs
- Just "what" and "why"
-
AI translated that into structure
- Data models
- Page layouts
- User workflows
-
AI wrote the implementation
- Django models, views, templates
- HTMX interactions
- Deployment configs
-
You reviewed and tested
- Made sure it matched your intent
- Fixed issues as they came up
- Understood what was happening
-
Deployed to production
- Not localhost anymore
- A real URL anyone can visit
- Ready to share
Time breakdown:
- Traditional way: 40-80 hours for a developer
- This tutorial: a few hours with AI assistance
- Speed-up: 20-40x faster
Part 11: Advanced: Level Up
If you want to go deeper after the tutorial, try one of these advanced paths.
Try: AI Writes a Build Instruction Summary
Have AI turn your planning conversation into a single build instruction you can reuse.
Difficulty: ⭐⭐⭐⭐⭐ Power Level: ⭐⭐⭐⭐⭐
Prompt to use:
Summarize our plan into a single build instruction I can reuse.
Include the tech stack, data model, key pages, and workflow.
Do not write code yet.
Click to copy
Try: CLI Workflow (Terminal) CLI stands for command-line interface. It means running prompts and commands by typing in a terminal.
Difficulty: ⭐⭐⭐⭐⭐ Power Level: ⭐⭐⭐⭐⭐
Try: MD File Planning (4-File System)
Ask AI to create structured MD files during planning, then build from those specs.
Difficulty: ⭐⭐⭐⭐⭐ Power Level: ⭐⭐⭐⭐⭐
4-File Documentation System (Optional)
Take it to the next level after the tutorial. This is the spec-first workflow we skipped today.
The Essential 4-File Documentation Stack
These aren't toy examples - these are production-grade specifications that seasoned architects actually use.
1. product-spec.mdClick to copy – The "What" & "Why"
Purpose: Business requirements that a non-technical person can read and understand.
What's inside:
- Problem statement (current state + impact on business)
- Target users (who will use this and how)
- Core features (must-have vs. nice-to-have)
- Explicitly out of scope (prevents feature creep)
- Success criteria (measurable outcomes)
- User stories (5 key scenarios)
- Constraints (timeline, budget, technical skill level)
2. technical-spec.mdClick to copy – The "How"
Purpose: Documents architecture decisions, tech stack choices, and technical constraints.
What's inside:
- Complete tech stack with "why we chose this" explanations
- System design diagrams (request flow, file structure)
- Key technical decisions (Django vs Flask, SQLite vs Postgres, HTMX vs React)
- Non-functional requirements (scalability, security, performance)
- Deployment strategy (local development + production)
- Testing approach
3. data-schema.mdClick to copy – The "What We Store"
Purpose: Complete database blueprint that AI can implement directly.
What's inside:
- Field-by-field specification table (types, constraints, descriptions, examples)
- Choice field mappings (internal values → display labels)
- Explicit validation rules ("amount must be positive", "ROI between 0-999.99%")
- Database indexes with reasoning
- Business logic (stage transitions, auto-calculations)
- Sample data (3 realistic examples for testing)
- Complete Django model code (ready to implement)
4. user-flows.mdClick to copy – The "How Users Interact"
Purpose: Complete UX specification documenting every user interaction.
What's inside:
- 7 complete user flows (view, filter, add, move forward, move backward, mark decision, details)
- Step-by-step interactions for each flow
- Visual specifications (card layouts in ASCII art, color codes, badge styles)
- Edge cases (no data, network errors, rapid clicks)
- Error states (validation errors, network failures, empty results)
- Loading states (skeleton screens, fade transitions)
- Form validation table (field → validation → error message)
- Modal UI mockups (in ASCII art)
- Responsive behavior (desktop/tablet/mobile breakpoints)
How to use these 4 files with AI:
Step 1: Create the documentation first (before any code)
I want to build an investment tracking app. Before we write any code,
let's create documentation files:
1. Create product-spec.md that explains:
- The business problem
- Who the users are
- What features we need (in-scope and out-of-scope)
- Success criteria
2. Create technical-spec.md that documents:
- Tech stack decisions and why
- Architecture overview
- Deployment strategy
- Security and performance considerations
3. Create data-schema.md with:
- Complete database models
- Field types, constraints, and validation rules
- Relationships and indexes
- Sample data
4. Create user-flows.md detailing:
- Every user interaction
- Page layouts and UI components
- Edge cases and error states
- Visual design specifications
Click to copy
Step 2: Review and refine the docs together
"Let's review the product-spec.md together. Read it back to me and
ask clarifying questions about anything that's unclear or missing."
Click to copy
Step 3: Reference docs when building
"Now let's start building. Please:
1. Read all 4 documentation files
2. Confirm you understand the requirements
3. Ask any questions before writing code
4. Generate the Django models based on data-schema.md"
Click to copy
Step 4: Keep AI aligned throughout
"Before you create the board view, review user-flows.md Flow #1
and confirm your implementation matches the spec."
Click to copy
Why this 4-file stack is superior:
✅ Clear separation - Business (product-spec) vs. Technical (technical-spec) vs. Data (data-schema) vs. UX (user-flows)
✅ No overlap - Each file has a distinct purpose, no confusion about where to document something
✅ Complete specifications - AI has everything needed to generate production-ready code
✅ Easy maintenance - Change UI? Update user-flows.md. Change database? Update data-schema.md.
✅ Works for teams - Non-technical stakeholders can edit product-spec.md, developers edit technical-spec.md
✅ Scalable - These 4 files work for small MVPs and large applications
✅ Version controlled - Track how requirements evolve over time
✅ AI-friendly - Structured format with tables, code blocks, and clear hierarchies
What makes these docs "architect-grade":
- Explicit validation rules - Not just "string", but "max 200 chars, trim whitespace, required"
- Edge cases documented - What happens when user clicks outside modal? What if network fails?
- Visual specifications - Card layouts, color codes, responsive breakpoints
- Business logic - Stage transition rules, calculation formulas, decision flows
- Non-functional requirements - Performance targets, security posture, browser support
- Sample data - Concrete examples AI can use for testing
- Error states - Validation messages, network errors, empty states
- Future considerations - What's out of scope now but might be needed later
Resources to Take Home
The Prompt Library:
Starting a new Django project:
Create a new Django project for [description].
Use SQLite, server-rendered templates, and Tailwind CSS.
Include HTMX for smooth interactions.
Set it up for deployment on PythonAnywhere.
Click to copy
Adding features:
Add [feature] to my Django app.
It should [describe behavior].
Keep code simple, readable, and consistent with existing patterns.
Click to copy
Debugging:
I'm getting this error: [paste error]
Here's the relevant code: [paste code]
Explain what's wrong and how to fix it.
Click to copy
Deployment:
Prepare my Django app for deployment on [platform].
Generate all necessary configuration files.
Update settings for production.
Click to copy
Understanding code:
Explain this code like I'm a business professional, not a developer:
[paste code]
Click to copy
Community and Support
Join our community on Discord: https://discord.gg/CHzuu9G9 Post questions, share what you build, and help each other get unstuck. There's a lot of helpful context and examples inside the Discord.