An interactive Streamlit dashboard for visualizing organization compliance with repository best practices.
- 📊 Multi-page architecture with individual pages for each organization (>100 repos)
- 🏠 Home page with overview of all organizations and summary metrics
- 🔍 Filter organizations by minimum repository count
- 📈 View compliance metrics for licenses, READMEs, citations, contributing guidelines, and tags
- 📝 Edit data directly in the dashboard with checkbox controls
- ⬇️ Download repository data as CSV
- 🚀 Ready for deployment on Streamlit Cloud, Heroku, Railway, and Hugging Face Spaces
# Install dependencies
pip install -r requirements.txt
# Run the dashboard
streamlit run Home.pyThe dashboard will open in your default browser at http://localhost:8501.
visualisations/
├── Home.py # Main landing page with all organizations
├── interactive_vis.py # Legacy shim; do not use as entry point
├── generate_pages.py # Script to generate org pages
├── github_repos_info.parquet # Runtime data file
├── requirements.txt # Python dependencies
├── DEPLOYMENT.md # Detailed deployment instructions
├── pages/
│ ├── org_neurodata.py # Auto-generated org page
│ └── org_jhu_sheridan_libraries.py
└── .streamlit/
├── config.toml # Streamlit configuration
└── secrets.template.toml # Secrets template
- View summary metrics for all organizations
- Filter by minimum repository count
- See top 5 organizations by repository count
- Navigate to individual organization pages via sidebar
Each organization page includes:
- Compliance Overview: Visual chart of compliance metrics
- Quick Metrics: 5-column display of compliance percentages
- Repository Details: Editable table with checkbox controls
- Missing Best Practices: Count of repositories missing each metric
- Download: Export repository data as CSV
When your data file is updated, regenerate organization pages:
python generate_pages.pyThis creates individual pages for all organizations with >100 repositories.
The dashboard expects a Parquet file named github_repos_info.parquet with:
| Column | Description |
|---|---|
Organization |
Organization name |
Repository Name |
Repository name |
License |
License name (empty if none) |
has_readme |
1/0 or true/false |
has_citation |
1/0 or true/false |
has_contributing |
1/0 or true/false |
has_tags |
1/0 or true/false |
repo_url |
Full repository URL |
- Push code to GitHub
- Go to share.streamlit.io
- Create new app with:
- Main file path:
Home.py - Python version: the version used by your deployment environment
- Main file path:
- Deploy!
Deployment requires these committed runtime assets:
github_repos_info.parquetorg_data/pages/
See DEPLOYMENT.md for detailed instructions on other platforms.
The dashboard displays compliance percentages for:
- README: Repositories with a README file
- License: Repositories with a license
- Citation: Repositories with citation information
- Contributing: Repositories with contributing guidelines
- Tags: Repositories with version tags
streamlit run Home.pyCreate new pages in the pages/ directory:
# pages/custom_page.py
import streamlit as st
st.set_page_config(page_title="Custom Page", layout="wide")
st.title("My Custom Page")Streamlit automatically detects and adds them to the navigation.
See LICENSE file.