Initial commit: CRDC Arrests API demo app
Deploy to Git Pages / build-and-deploy (push) Failing after 19s

React + Vite static site demonstrating the CRDC School Arrest Rate API.
Features 6 interactive charts comparing observed arrest data against Bayesian
model estimates across U.S. school districts, with Civilytics visual identity.

- State selector and district search with 'interesting' suggestions (top arrests)
- Animated histogram loading grid showing posterior draw progress
- Charts: time series, rate by group, district vs national, model comparison quadrants, density proxy, exceedance probability
- Static JSON fixture for national rates (no API changes needed)
- Dockerfile + docker-compose.yml for self-hosted deployment
- GitHub Actions workflow and _config.yml for Git Pages
This commit is contained in:
2026-08-10 10:54:51 -04:00
commit 52a0c77e31
29 changed files with 5084 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 558 160" role="img" aria-label="Civilytics">
<path fill="#0E1A2B" d="M43.12 33.78Q50.18 33.78 56.17 35.68Q62.16 37.58 66.81 41.06Q71.46 44.53 74.42 49.23Q77.39 53.94 78.61 59.64Q79.07 61.89 78.68 62.56Q78.29 63.23 77.06 63.46L57.46 64.69Q56.22 64.69 55.89 64.18Q55.55 63.68 55.33 62.56Q54.43 57.63 51.91 54.33Q49.39 51.02 45.79 51.02Q42.2 51.02 40.85 54.33L38.65 61.89C38.65 61.89 36.34 70.45 33.36 80.03Q30.39 89.62 27.31 99.21L24.23 108.8C20.49 120.04 17.41 129.53 14.79 137.28C12.16 145.03 9.96 152.68 8.2 160.04L5.12 175.13Q2.04 190.22 0 200L43.12 33.78ZM104.54 114.75Q104.54 116.54 103.64 117.21Q102.74 118 100.84 118L84.95 118Q83.37 118 82.75 117.21L78.68 110.53C78.68 110.53 77.06 107.45 75.94 104.27Q74.82 101.09 74.82 97.81L74.82 60.88Q74.82 58.63 77.06 58.63L103.64 58.63Q105.88 58.63 105.88 60.88L105.88 114.75ZM128.16 57.52Q129.38 57.52 130.18 58.63C130.98 59.74 131.39 61.26 131.39 63.2L131.39 111.68Q131.39 113.93 128.16 113.93L104.54 113.93Q101.31 113.93 101.31 111.68L101.31 63.2Q101.31 61.26 102.74 59.74C104.17 58.22 105.79 57.52 108.11 57.52L128.16 57.52ZM166.51 160L146.46 160Q143.23 160 142.61 159.11L139.53 154.6C137.81 152 136.69 147.86 136.69 142.85V90.82Q136.69 88.57 138.93 88.57H153.55Q161.6 88.57 167.49 92.64C170.46 94.68 173.53 97.57 176.41 101.31Q178.88 104.46 180.1 107.72Q180.81 109.66 180.81 111.6V154.6C180.81 156.95 178.5 160 175.36 160H166.51ZM223.78 160L203.73 160Q200.41 160 199.61 159.11L196.53 154.6C194.81 152 193.69 147.86 193.69 142.85V60.88Q193.69 58.63 196.01 58.63H210.42Q218.47 58.63 224.36 62.7C227.33 64.74 230.4 67.63 233.28 71.37Q235.75 74.52 237 77.78Q237.91 79.63 237.91 81.57V154.6C237.91 156.95 235.6 160 232.46 160H223.78ZM284.35 160L263.3 160Q260.07 160 259.27 159.11L256.19 154.6C254.47 152 253.35 147.86 253.35 142.85V60.88Q253.35 58.63 255.67 58.63H269.58L284.35 160ZM312.16 160V58.63H335.34Q337.57 58.63 337.57 60.88V154.6C337.57 156.95 335.26 160 332.12 160H312.16ZM368.93 160L356.72 160Q354.65 160 353.85 159.11L350.77 154.6C349.05 152 347.93 147.86 347.93 142.85V60.88Q347.93 58.63 350.25 58.63H364.66Q372.71 58.63 378.6 62.7C381.57 64.74 384.64 67.63 387.52 71.37Q389.99 74.52 391.21 77.78Q392.02 79.63 392.02 81.57V154.6C392.02 156.95 389.71 160 386.57 160H368.93ZM429.71 160L407.66 160Q404.34 160 403.54 159.11L400.46 154.6C398.74 152 397.62 147.86 397.62 142.85V60.88Q397.62 58.63 399.94 58.63H414.35Q422.4 58.63 428.29 62.7C431.26 64.74 434.33 67.63 437.21 71.37Q439.68 74.52 440.9 77.78Q441.71 79.63 441.71 81.57V154.6C441.71 156.95 439.4 160 436.26 160H429.71ZM498.48 160L476.43 160Q473.11 160 472.31 159.11L469.23 154.6C467.51 152 466.39 147.86 466.39 142.85V60.88Q466.39 58.63 468.71 58.63H483.12Q491.17 58.63 497.06 62.7C500.03 64.74 503.1 67.63 505.98 71.37Q508.45 74.52 509.67 77.78Q510.48 79.63 510.48 81.57V154.6C510.48 156.95 508.17 160 505.03 160H498.48Z"/>
<path fill="none" stroke="#0E1A2B" stroke-width="5" stroke-linecap="round" stroke-linejoin="miter" d="M548 90 L548 90 L547.3 90 Z M546 90"/>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB