본문으로 건너뛰기
cccskills
무료GitHub에 공개

verify

Run this Django app locally against a throwaway database and drive its pages over HTTP to observe a change working. Use when verifying student/cadmin page behavior end-to-end.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Playwright
설치 방법 보기

포함된 파일(1)

  • SKILL.md2.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Verifying changes in this app

Django server-rendered app. The surface is HTTP + rendered HTML, so verify by running the server and fetching pages — not by running the test suite.

Throwaway database (never touch the dev db)

DATABASE_URL overrides the default sqlite:///db/db.sqlite3. Point it at a scratch file so seeding doesn't mutate the real dev data:

export DATABASE_URL="sqlite:///$SCRATCH/verify.sqlite3"
uv run python manage.py migrate
uv run python manage.py shell < seed.py     # create Course/Homework/Question
uv run python manage.py runserver 8971 --noreload

Health check to confirm it's up: curl http://127.0.0.1:8971/api/health/

URL shapes

Homework pages are /<course_slug>/homework/<homework_slug> — no /course/ prefix and no trailing slash. Check courses/urls.py before guessing; a wrong path returns a 404 page that greps as "no output" and looks like a failed feature.

Authenticating in a browser

Login is allauth OAuth only — there is no username/password form to fill, so Playwright can't log in through the UI. Mint a session cookie instead:

from django.contrib.sessions.backends.db import SessionStore
from django.contrib.auth import SESSION_KEY, BACKEND_SESSION_KEY, HASH_SESSION_KEY
s = SessionStore()
s[SESSION_KEY] = str(user.pk)
s[BACKEND_SESSION_KEY] = "allauth.account.auth_backends.AuthenticationBackend"
s[HASH_SESSION_KEY] = user.get_session_auth_hash()
s.create()

ModelBackend is commented out in AUTHENTICATION_BACKENDS — using it makes the session silently unauthenticated. Then ctx.add_cookies([{"name": "sessionid", "value": key, "domain": "127.0.0.1", "path": "/"}]).

Gotchas

  • Homework/project open-vs-closed is driven by state (OPEN/CLOSED/SCORED), not by due_date. A passed deadline alone does not close a form.
  • Submitting a homework URL performs a real network check on the repo. Use a genuine public repo (e.g. https://github.com/DataTalksClub/llm-zoomcamp); fake URLs are rejected with "does not exist".
  • "Deadline passed" / time-left text is rendered client-side by courses/static/time_left.js, so it will not appear in curl output — use a browser to see it.
  • Badges use app-badge-upper (CSS uppercase), so Playwright inner_text() returns "NOT SUBMITTED" while the template source says "Not submitted".
  • Playwright + chromium are already installed (uv run python, ~/.cache/ms-playwright).

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

api

무료

How to reach the platform REST API — where prod and dev live, where the API token is (.env), how to authenticate with curl, and how to fetch the OpenAPI spec listing every endpoint. Use whenever you need to read or edit course/homework/project/registration data, or inspect real prod data while debugging.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

DataTalksClub/course-management-platform862026년 10월 19일 업데이트

Investigate and resolve Course Management Platform CloudWatch alert issues end to end. Use when Codex is asked to inspect a CMP GitHub alert issue, pull dev or production AWS logs, diagnose 5xx responses or failed background work, fix an incident with test-driven development, validate a fix in dev, or deploy and verify an authorized production fix.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

DataTalksClub/course-management-platform862026년 10월 19일 업데이트

DataTalksClub의 스킬 모두 보기

이 스킬의 문제 신고