{"id":33556344,"url":"https://github.com/achingachris/callforspeakers","last_synced_at":"2026-05-06T04:31:09.606Z","repository":{"id":325782770,"uuid":"1098912979","full_name":"achingachris/callforspeakers","owner":"achingachris","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-23T10:29:12.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-23T12:18:19.482Z","etag":null,"topics":["fastapi","htmx","open-source","python"],"latest_commit_sha":null,"homepage":"https://cfp.chrisdevcode.com","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/achingachris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-11-18T10:01:36.000Z","updated_at":"2025-11-23T10:29:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/achingachris/callforspeakers","commit_stats":null,"previous_names":["achingachris/callforspeakers"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/achingachris/callforspeakers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achingachris%2Fcallforspeakers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achingachris%2Fcallforspeakers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achingachris%2Fcallforspeakers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achingachris%2Fcallforspeakers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/achingachris","download_url":"https://codeload.github.com/achingachris/callforspeakers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achingachris%2Fcallforspeakers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32678568,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","htmx","open-source","python"],"created_at":"2025-11-27T18:00:41.427Z","updated_at":"2026-05-06T04:31:09.577Z","avatar_url":"https://github.com/achingachris.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CFP Explorer (FastAPI + HTMX)\n\nA lightweight Call for Proposals explorer built with FastAPI, HTMX, and Bootstrap. It renders event data from `cfp.json`, supports live filtering, and serves a simple JSON API for integrations.\n\n## Project Structure\n- `app.py` — FastAPI app, routes, and Jinja template wiring.\n- `templates/` — Jinja2 views (`base.html`, `index.html`, `events.html`) styled with Bootstrap and HTMX attributes.\n- `cfp.json` — Event metadata (`name`, `link`, `deadline`, `event_date`); keep fields intact and ordering consistent when editing.\n- `.vercel/` — Deployment metadata for hosting; avoid changes unless adjusting deploy settings.\n- `requirements.txt` — Runtime dependencies. `bin/` and `pyvenv.cfg` belong to the local virtualenv; do not commit new venv artifacts.\n\n## Fork, Clone, and Install\n1. Fork the repository on GitHub.\n2. Clone your fork: `git clone git@github.com:\u003cyour-username\u003e/fastapi.git \u0026\u0026 cd fastapi`.\n3. Optional: add the original repo as upstream (`git remote add upstream git@github.com:\u003cowner\u003e/fastapi.git`).\n4. Create a virtualenv and activate it:\n   - macOS/Linux: `python -m venv .venv \u0026\u0026 source .venv/bin/activate`\n   - Windows (PowerShell): `python -m venv .venv; .\\.venv\\Scripts\\Activate.ps1`\n5. Install dependencies: `pip install --upgrade pip \u0026\u0026 pip install -r requirements.txt`.\n\n## Run the App\n- Start the dev server with reload: `uvicorn app:app --reload` (default at `http://127.0.0.1:8000`).\n- Quick API check: `curl http://127.0.0.1:8000/api/events` should return the CFP JSON.\n- If you add tests, run them from the repo root with `pytest`.\n\n## Contributing\n- Create topic branches (`feature/\u003cname\u003e` or `fix/\u003cname\u003e`) rather than committing to `main`.\n- Commit messages should be concise and imperative (e.g., \"Update events table rendering\").\n- For pull requests, include a summary, testing steps (manual or `pytest`), and screenshots/GIFs for UI changes.\n- When updating `cfp.json`, double-check JSON validity and note data changes in the PR description; avoid committing virtualenv files.\n- Follow PEP 8 (4-space indentation) and reuse existing naming and HTMX patterns in templates.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fachingachris%2Fcallforspeakers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fachingachris%2Fcallforspeakers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fachingachris%2Fcallforspeakers/lists"}