Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add anti-performances app #54

Draft
wants to merge 42 commits into
base: main
Choose a base branch
from
Draft

Add anti-performances app #54

wants to merge 42 commits into from

Conversation

andrewwestling
Copy link
Owner

@andrewwestling andrewwestling commented Dec 9, 2024

🎻🤯

Forthcoming

Global

  • Filter all the things
  • "Season" concept (for years, like "2023-2024" designation)
  • Visual: Add "concert program" styling
  • Full text search
  • "Next upcoming concert" block at the top
  • Add Sheet Music references
  • Add Rehearsal data
  • URLs for concerts, groups, venues
  • Global breadcrumbs on all pages

Venues

  • Fix maps on deployed environment

Concerts

  • Add "Upcoming" badge
  • Add Spotify playlist display
  • Add Upcoming concerts page /concerts/upcoming and Past concerts page /concerts/past See filters
  • Add ICS feed of Calendar events for Upcoming concerts
  • Add more "Did not play" statuses (canceled, declined, etc)
  • Show soloist names when there's a soloist
  • Denote which conductor did which piece

Works

  • Enrich work pages with movements etc
  • "My favorite recordings" on works
  • "Repertoire bucket list" / "Want to perform"

I used Cursor to basically clone my next-js app structure

- No remark autolink or table of contents stuff
- Minor changes to component tokens (use "accent" color in a few places where we use "primary" in next-js)
- `npm run generate-db` to create the vault-database.json file from my Obsidian vault for this data
- Routes/templates/pages for everything (composers, concerts, conductors, groups, works; the rest can come later)
- A sample output of the vault database with incomplete data at data/vault-database.json; will update Obsidian later with more info
- A bunch of other helper functions and stuff that make it all work together
The vault itself is gitignored, but I'm just updating references here
- Add types for all the front matter and objects; told Cursor to look at the Templates for this and create something that matches
- Rename the data to `vault-data.json` etc
It wasn't getting formatted for some reason 😐
- Update vault-data.json with more data (I added a bunch more to the vault)
- Show DidNotPlay badges next to concert titles if frontmatter is present
- Show DidNotPlay badge in anti-ds page
Haven't gone through the data to make it make sense yet so I am just omitting it; also need to scrub anything private out
- Add stuff into database types etc
- Add all the pages/templates for Venues
- Add to main list view
- Use Nominatim to get address information from coordinates
    - Add location parsing peculiarities: needed to nicely handle "Brooklyn, New York" versus "New York, New York" etc
- Add Venue info to Concert pages and lists
- Add VenueMap component for showing on a map from coordinates; include on anti-ds page
We'll put it in here for now so we can play with it on a deployment

Maybe it'll stay here

- Also added "breadcrumbs" to the header when we're in Music
- Added a link to this from the main homepage, and to the footer
- Updated the generate script etc
Copy link

vercel bot commented Dec 9, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
andrewwestling-com ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 16, 2024 3:38pm

Moving vault back to ~ and using a symlink in repo for Cursor stuff
- Add helper for isUpcoming etc
- Add helper component for ConcertBadges to consolidate
- Aggregate concertCount in objects
- Work, Venue, Group, Conductor, Composer, etc; all have a "concertCount" that reflects how many concerts I've played for that particular thing
- Regenerated the vault-data as well
- Make homepage smarter: "Upcoming concerts" section at the top sorted ascending, "Past concerts" section below sorted descending; other sections sorted by concert count (most first); "Show more" links after the first 5 on each thing too
Sometimes they showed as "Brooklyn Symphony Orchestra:" if there was no subtitle; just omit the :
Testing Cline for this one, let's see if it worked
I can just use OpenStreetMap

Also add a dark mode setup for this
$0.22 with Cursor; compared to the Maps feature, this was a lot more expensive per line of code 🤔
I'm going to omit DNP concerts from the data because what's the real point of showing them
- Rework layouts where concerts are shown in a list to all use the same ConcertListItem component
- Unify terms "Concert" instead of "Performances" in a few places
- Take concerts off of Composer page; feels wrong
- Pull in old MYS/PYP concerts (there are more I just don't have the data available here)
- Pull in UOSO concerts
- Re-run after adding "didNotPlay" filtering; now there are no more DNPs in here
- Add a bunch of new works/composers from the added concerts
- VenueStats component to consolidate the location/concert count
- Move the resolved address to the bottom of the map
- Reorganize anti-ds into sections for components
- Add /seasons and /seasons/[slug]
- Add SeasonListItem component
- Add Seasons to homepage
- Update generate-database script; regenerate
- Vault updates: changed some things with the concert filenames; added seasons to everything
- Filter by Season, Group, Conductor, or Venue
- "Clear all filters" button once you've filtered

🤔 Also realizing this removes the need for a lot of the pages like "Venues" or "Conductors" etc because you can just kinda look at the list on the Filters

🤔🤔 Also it'd probably be good to make the homepage just this Concerts page with some extra sparkle and remove the need for all the index pages for each object

🤔🤔🤔 Also realizing the whole interface to this project could just be a big fat react-select-style searchbox to remove the need for all the index pages...
- Omni filter thing; it's all in one place now
- Add new tokens to theme in Tailwind: border, surface, selected
- Add CSS variables to point to theme colors; need this for react-select
- Remove ServerFilters
- Add examples to anti-ds page (needed "updateUrl" prop on Filters so it won't make the page URL change on the ds page)
anti-ds was silly if it's all existing within this site, idk

We'll peel it out once it's clear how it all works
- Remove a bunch of content from the homepage
- Add layout and Navigation component
- Rework layout have spacing baked into that instead of on each individual page
Was just set to the date of today etc; we want it to actually use the time of the concert so it will stop showing as "upcoming" once the concert completes
- Update to `getDateFromFrontmatter`
- Remove unused imports etc
- Show city/country information on non-US locations
- Remove SeasonListItem and just use ListItem in its place
- Remove VenueStats because we reworked Venues page
- Add to AWDS
- No more bottom border separator
- Use non-expanded on homepage
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