This is the exact workflow to take your capstone notebook and get it onto a public GitHub repo — all using VS Code's interface.
Step 1 — Create the GitHub repo
- Go to github.com → new repo (or
github.com/new). - Name: descriptive, kebab-case. e.g.
saas-churn-analysis. - Description: 1 sentence — "Churn and retention analysis for a fictional SaaS company, capstone for Topfolio Data Analyst track."
- Set to Public. (Recruiters can't see private repos.)
- Don't initialize with a README from GitHub — we'll add ours locally.
- Click "Create repository".
GitHub now shows you a setup page. You'll see an HTTPS URL — https://github.com/your-username/saas-churn-analysis.git. Save this.
Step 2 — Set up your local folder
Make sure your capstone folder has:
- Your notebook(s) (.ipynb files)
- A README.md (write one — a good template is in the lessons above)
- A .gitignore (template below)
- Any small supporting data files (large datasets — keep them out of git)
Create a .gitignore
Inside your project folder, create a file named .gitignore with:
.ipynb_checkpoints/
__pycache__/
.DS_Store
.env
venv/
data/raw/
*.pkl
These patterns tell Git to ignore temporary and sensitive files.
Step 3 — Initialize Git in VS Code
- Open your capstone folder in VS Code
- Open the Source Control panel (
Ctrl + Shift + G) - Click "Initialize Repository"
- VS Code creates a
.gitfolder — you're now tracking the project
Step 4 — Stage and commit locally
- In the Source Control panel, you'll see all your files under "Changes"
- Click the
+icon next to each file (or "Stage All Changes"+at the top) - Type a commit message in the box above:
"Initial capstone: SaaS churn analysis" - Click the checkmark icon (or press
Ctrl + Enter)
Your files are now committed locally.
Step 5 — Publish to GitHub
- In the Source Control panel, click the "Publish Branch" button
- VS Code prompts you to sign in to GitHub (one-time OAuth in your browser)
- VS Code shows the repo URL you created in Step 1 — paste it
- Choose Public visibility (private repos can't be seen by recruiters)
- VS Code pushes your code and confirms success
One-time note: The first time, VS Code handles the OAuth authentication. After that, publishing and pushing work automatically.
Step 6 — Verify
Go to github.com/your-username/saas-churn-analysis. You should see:
- Your files listed
- Your commit message
- Your notebook rendered in the browser — click on it to confirm cells display correctly
Step 7 — Link from your Topfolio profile
In your Topfolio settings, add the repo URL to your GitHub profile field. It'll show on your public portfolio page.
Step 8 — Add a topic + a description
On your GitHub repo page:
- Click the gear icon next to "About" (top-right of the file list)
- Description: 1-line "what is this"
- Add 2-3 topics:
data-analysis,python,saas-metrics,topfolio
Topics make the repo searchable when recruiters browse GitHub.
The recurring workflow
Every time you update your notebook after the initial push:
- Open the Source Control panel
- See your changes listed
- Type a meaningful commit message:
"added cohort retention section" - Click the checkmark to commit
- Click the sync icon in the status bar (bottom-left) to push
Aim for 3+ commits across the capstone build, not 1 giant commit at the end. Consistent commit history shows real work.
Common mistakes
- Forgot to set the repo public. Recruiters can't see private repos.
- Committed the API key accidentally. If this happens, rotate the key immediately — it's now exposed. Clean the history with BFG Repo-Cleaner.
- One giant final commit. Looks like you copied from somewhere. Smaller commits = visible process in your GitHub contribution graph.
- No README. A repo without a README looks abandoned. Write one — the template from these lessons covers it.
Takeaway
This workflow takes 10 minutes the first time. After that, the commit + sync loop is 30 seconds per session. Every working session, do it. Your GitHub contribution graph becomes part of your portfolio.