Skip to content

Polish for job-readiness: tests, CI, deploy config, recruiter-friendly README - #1

Draft
Gavand1969 wants to merge 1 commit into
mainfrom
polish-job-readiness
Draft

Polish for job-readiness: tests, CI, deploy config, recruiter-friendly README#1
Gavand1969 wants to merge 1 commit into
mainfrom
polish-job-readiness

Conversation

@Gavand1969

Copy link
Copy Markdown
Owner

Summary

A non-invasive polish pass aimed at how the repo reads to a hiring manager and how it behaves in CI / on a fresh checkout. No app behaviour was changed.

  • Reproducible setup — pinned upper bounds in `requirements.txt` (`<2.0 / <7.0 / <3.0`), new `requirements-dev.txt` adding pytest + playwright, and `.streamlit/config.toml` so theme + headless server defaults travel with the repo (useful for Streamlit Community Cloud).
  • Tests — new `tests/` package: data-layer schema + business invariants (`copq_usd <= lot_value`, tier/severity domains, no nulls in core columns), generator determinism, page-module compile smoke for all four pages plus `app.py`.
  • CI — new `.github/workflows/ci.yml` runs pytest on Python 3.11 and 3.12, then boots Streamlit and waits for `/_stcore/health` to confirm the app actually starts.
  • README — adds a Business Impact paragraph (puts the $85M COPQ / 11.85% headline in context for a non-technical reader), a Skills Demonstrated bullet list grouped by analytics / data eng / dashboarding / engineering practice, dedicated Deploy and Tests sections, virtual-env step in the run instructions, `gh repo clone` instead of raw HTTPS, and a CI badge.

Test Plan

  • `pytest tests/ -v` — 12 passed locally
  • `streamlit run app.py` — boots clean, `/_stcore/health` returns `ok` (HTTP 200)
  • `python -m py_compile app.py pages/*.py src/data.py` — clean
  • CI workflow run (will trigger on push)

Notes / Remaining Recommendations

These would be follow-ups, intentionally out of scope here:

  • Live demo link on Streamlit Community Cloud (one-click deploy now that config is in place)
  • A docker/Dockerfile for non-Streamlit-Cloud targets
  • Capture a short GIF/MP4 of the dashboard for the README header
  • Consider promoting `take_screenshots.py` to a make target or CI artifact step

🤖 Generated by Computer

- Pin requirements with upper bounds; add requirements-dev.txt for pytest/playwright
- Add .streamlit/config.toml so the app theme and headless server are reproducible
- Add tests/: data-layer invariants, generator determinism, page-module compile smoke
- Add GitHub Actions CI: pytest on 3.11/3.12 plus Streamlit /_stcore/health boot check
- README: business-impact paragraph, skills-demonstrated bullets, Deploy and Tests sections, CI badge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant