Skip to content

Liam/fix nav personas#72

Open
dondischl12 wants to merge 37 commits into
NEU-CS3200:mainfrom
sebastianbrookes:liam/fix-nav-personas
Open

Liam/fix nav personas#72
dondischl12 wants to merge 37 commits into
NEU-CS3200:mainfrom
sebastianbrookes:liam/fix-nav-personas

Conversation

@dondischl12
Copy link
Copy Markdown

fixed the small issue with the check-in check-out dynamics.

sebastianbrookes and others added 30 commits April 13, 2026 11:13
* add realistic sample database data
* add AUTO_INCREMENT to the single-column surrogate key tables
* add pinned requirements.txt from pyproject.toml

* feat(app): add Pickup Player dashboard with court map and check-in

Add Persona 1 (Marcus Reyes) Streamlit dashboard addressing two user
stories: viewing a live map of nearby courts with player counts, and
checking in/out at courts. Replaces template personas in Home.py with
HoopSpot-specific pickup player role.

* fix(app): switch map to st.map and add filter labels

Replace pydeck ScatterplotLayer with st.map for reliable tile
rendering without a Mapbox token. Add visible labels to the
skill level, court type, and sort dropdowns.

* fix(app): align search input with filter dropdowns

Show the Search label so all four filter inputs share the same
vertical baseline.

* feat(app): show court details and reviews in a dialog popup

Replace the scroll-to-bottom detail panel with a @st.dialog modal
that opens on click. Add court reviews with avg rating, condition
score, and the 5 most recent player comments.

* feat(app): add Re-center button to reset map view

Use st.empty() to allow destroying and recreating the map widget,
which resets pan/zoom back to the default center position.

* unlist About page

* feat(app): introduce shared styles module and dark UI refresh

Centralizes theming in modules/styles.py and applies an Outfit-based dark
theme across Home and Pickup Home, with a pydeck map, status badges, and
a styled player profile card.
* add pinned requirements.txt from pyproject.toml

* feat(app): add Pickup Player dashboard with court map and check-in

Add Persona 1 (Marcus Reyes) Streamlit dashboard addressing two user
stories: viewing a live map of nearby courts with player counts, and
checking in/out at courts. Replaces template personas in Home.py with
HoopSpot-specific pickup player role.

* fix(app): switch map to st.map and add filter labels

Replace pydeck ScatterplotLayer with st.map for reliable tile
rendering without a Mapbox token. Add visible labels to the
skill level, court type, and sort dropdowns.

* fix(app): align search input with filter dropdowns

Show the Search label so all four filter inputs share the same
vertical baseline.

* feat(app): show court details and reviews in a dialog popup

Replace the scroll-to-bottom detail panel with a @st.dialog modal
that opens on click. Add court reviews with avg rating, condition
score, and the 5 most recent player comments.

* feat(app): add Re-center button to reset map view

Use st.empty() to allow destroying and recreating the map widget,
which resets pan/zoom back to the default center position.

* unlist About page

* feat(app): introduce shared styles module and dark UI refresh

Centralizes theming in modules/styles.py and applies an Outfit-based dark
theme across Home and Pickup Home, with a pydeck map, status badges, and
a styled player profile card.

* feat(app): add player profile dashboard with skill trend

Addresses the pickup-player user story: view personal stats (games
played, wins, skill rank) to track improvement over time. Adds a new
Profile page with hero, stat cards, a Plotly skill-score line chart,
and a recent-games list, plus two supporting API endpoints that join
GameParticipation with Court/Game and derive a skill trajectory from
the player's result history.

* feat(db): seed Marcus Reyes history and fix reserved-word CTEs

Rebrands PlayerId 1 as Marcus Reyes (Roxbury) and adds 42 games across
Jan-Apr 2026 so the Pickup Profile dashboard renders with meaningful
stats (47 games, 29W/18L) and an upward skill trend. Also renames two
'generated' CTEs to 'gen' so MySQL 9 accepts them (reserved word), and
adds a CLAUDE.md noting the MySQL 9 reserved-word gotcha and the
down -v requirement for re-running init scripts.

* refactor(app): densify profile layout for desktop viewport

Puts the hero and three stat cards side-by-side in a single top row,
and splits the skill chart and recent-games list into a two-column
bottom row so the full dashboard fits above the fold on a standard
desktop. Widens the container to 1400px, tightens paddings and font
sizes, restores enough top padding to clear the Streamlit header,
and swaps the conic-gradient avatar ring for a solid orange border.

* polish(app): align profile cards to a common height

Treats the hero as a proper card (matching stat-card border, bg, and
accent line) and pins every top-row card to min-height 118px with
vertically centered content so the hero, Games, Win/Loss, and Skill
Score cards read as one row. Shrinks the avatar to 72px and the name
to 1.2rem so the hero sits at the same scale as the stat values.
Replaces the wrapping "▲ trending" label with a single arrow inline
with the skill value, and rebalances the bottom split (chart 2.6 /
recent games 1) so the list no longer extends past the chart. Also
parses Flask's RFC 1123 date format so recent-games subtitles show
"yesterday" / "4 days ago" instead of raw HTTP date strings.
Flask's jsonify serializes DECIMAL columns as strings, so summing
Rating/ConditionRating raised TypeError in the court dialog.
Drops the logo image from the sidebar nav and deletes the unused
Political Strategist home and World Bank visualization pages.
Add leaderboard and tournaments sidebar links under a new
competitive_player role, and a matching Aaliyah persona card on
Home.py that routes to the leaderboard.
- Delete unregistered simple_routes and ngos blueprints plus the
  unused ml_models stub from api/backend/
- Delete Streamlit template demo pages (Map_Demo, Prediction,
  API_Test, Classification, ML_Model_Mgmt) and orphaned
  USAID_Worker_Home and NGO_Directory/Add_NGO/NGO_Profile pages
- Strip dead nav helpers and the usaid_worker role block from
  app/src/modules/nav.py
Wire all 4 personas: add analyst pages, fix admin nav, competitive ho…
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.

4 participants