Luke P — Render Deploy Guide

Project: Study Buddy Tracker
Repo: final-project-Pattlu3
Goal: Put your Flask + SQLite assignment tracker online for Demo Day.

This guide is tailored to your current repo. Your app has app.py, db.py, schema.sql, templates, pyproject.toml, and uv.lock. It creates the SQLite database inside Flask's instance/ folder when the app starts.

Before You Start

Make sure the app works locally:

uv sync
uv run flask --app app run --debug

Open the preview, add an assignment, mark it complete, and confirm the dashboard updates.

Step 1 — Add the Production Server

Render should run your Flask app with gunicorn.

uv add gunicorn

This updates pyproject.toml and uv.lock.

Step 2 — Confirm the Schema Is Committed

Your app initializes SQLite from this file:

schema.sql

Check Source Control. If schema.sql appears under Changes, stage and commit it. Render needs that schema file to create the assignments table.

Step 3 — Create render.yaml

Create a new file at the project root named render.yaml:

services:
  - type: web
    name: study-buddy-tracker
    env: python
    plan: free
    buildCommand: uv sync --frozen && uv cache prune --ci
    startCommand: uv run gunicorn app:app
    autoDeploy: true

No API keys are needed for the current version of this app.

Step 4 — Commit and Push

In Source Control, stage and commit:

  • pyproject.toml
  • uv.lock
  • render.yaml
  • schema.sql if it is changed

Use a message like:

add render deploy config

Then click Sync Changes.

Step 5 — Create the Render Service

  1. Go to render.com and sign in with GitHub.
  2. Click New +Web Service.
  3. Connect final-project-Pattlu3.
  4. Confirm these settings:
    • Environment: Python
    • Build Command: uv sync --frozen && uv cache prune --ci
    • Start Command: uv run gunicorn app:app
    • Plan: Free
  5. Click Create Web Service.

Step 6 — Test the Live Site

When Render finishes, open the live URL and test the core flow:

  1. Add a new assignment.
  2. Return to the dashboard.
  3. Edit the assignment.
  4. Mark it complete.
  5. Toggle the assignments list to show completed work.

If the app errors on startup, check the Render log for schema.sql or SQLite messages.

Demo Day Notes

Render's free tier has an ephemeral filesystem. Assignments you add on the live site can disappear after a redeploy. For demo day, add a few sample assignments shortly before presenting so the dashboard has meaningful data.