Change Log


Current Changes

  • Paused locations are now here!
    • Not a small change, this requires an extra table in the database as well as an additional API call to Tapin2.
    • A paused location will appear as red and show that they are paused!
  • An all new jumpscare popup modal for new changes!
    • Instead of confetti and a banner at the top, I've decided to make all users read the release notes by forcing them to view a pop up. You're welcome.
    • Pop ups also allow me to add images and more dynamic HTML that actually shows what the chagnes are.
  • Event totals at the top of the current event page have been updated!
    • Event totals have a new section below the current event numbers for a breakdown by category.
    • Each header is sorted by the subtotal of items in that category (meaning their sort order is not static).
    • Categories are also accordions which can be expanded to view the top 5 most purchased item in that category.
    • This will probably be tweaked moving forward because it's a little cluttered at the moment.
  • Bug fixes!
    • Fixed a bug where starred reports weren't loading correctly.
    • "No Orders Yet" messaging is now more consistent visually and shows up correctly when the event has begun but not yet has any sales.
Historical Changes

  • The Tapin2 API is not RESTful. They have updated an endpoint and not prioritized backwards compatability as per RESTful principles.
  • Added to known bugs - starred reports are not able to be queried due to JSON formatting. Fixing this week.
  • More consistent design language
    • Expander "accordions" on the change log page (this one!)
    • Menu implemetation on the base template for a proper mobile-view. (Hamburger on mobile, nav bar on desktop/tablet)
  • Ability to favorite queries on the reporting page!
  • Began implementation of the "Past Events" page! (STILL WIP, NOT COMPLETED)
    • This page will act as the ability to view the dashbaord as it existed for past events.
      • It's essentially a quick view for a breakdown of revenue by location, mobile ordering percentages and overall totals
  • Began implementation of the FDP database for historical reporting!
    • This means we're one step closer to realizing the full goal of this tool! Only a few more weeks now! I can feel it! 😎

October 14, 2025: The Season Opener Change!

  • Dark mode is here!
    • Even includes a cookie to remember user preferences per-device.
  • Fixes a timezone bug when looking at the next event!
  • Fixed a bug which called the server on a dead endpoint every second.
  • Complete overhaul of how the dashboard works!
    • I'm probably the only one who will care about this change, but it represents a significant amount of work.
    • The entire framework has been moved from webhooks to SSE.

October 12, 2025: Reporting Implementation!

  • Natural Language Reporting is here!
    • You can use the new "Reports" button at the top of the page to visit the new Natural Language Reporting tool!
    • This AI model is trained on the columns in our Tapin2 database (but none of the actual data, for cybersecurity reasons).
    • All of the things it understands:
      • The structure of orders, items and modifiers:
        • Mobile vs Non-Mobile orders.
        • Complex relationships of what items are in each cart for requests like: "What item is most frequently purchased when a hot dog and a soda is in the cart?".
        • Categories of items such as Food, N/A Bev, Canned Beer, Draft Beer, Wine, and Liquor.
      • Event based reporting:
        • Automatically filtering out test events and understanding "Ducks" v "Non-Ducks" events.
        • How the season runs so you can ask: "in the 24-25 season" and other types of simple requests.
        • Groups of events like "Disney on Ice" or "Tony Robbins".
      • How we structure our financial data:
        • How discounts are implemented.
        • That some locations have fees and some do not.
        • The hierarchy of gross, discount, fees, tax, tip, and net.
      • And all of the other things that the model intrinsicly knows!
    • Understanding of sorts, so you can ask for "top items", "top events", etc and it will sort them correctly.
    • The ability to see the SQL which is actually being passed to the database (helps with debugging, fact checking and if you get an unexpected result, I can help make it better for next time!)
    • The ability to see the last 5 requests that were made to the reporting tool and the ability to re-run this data without consulting the AI again (much cheaper) and a deterministic result.
    • "Download as CSV" tool! 😎
    • Internally Iterative Prompting: If the AI initially isn't able to find meaningful data, it can improve what it tried upon for a second chance, but only once. So if some requests take longer, this is likely why; in the background it wants to try again.
    • Headers on the response are sortable if you click on them, but have a known issue where they're sorting numbers as if they're strings because I'm formatting financial data. (Meaning it thinks $9 is bigger than $10, for now just download as CSV if you need to manipulate the data.)
  • Bug Fixes
    • Fixed a rare bug which would run the background task twice, overloading the Tapin2 API

September 28, 2025: Mobile Ordering!

  • Update to main location cards now include a percentage of mobile orders for the location
    • Module will not appear if there have been no mobile orders, removing the clutter for bar locations.
  • Began Mashgin Implementation
    • Mashgin implementation is nearing completion, I've got all the data and it's being stored and shown correctly on beta builds. Just finishing up all of the integration with the rest of the app.
  • Location Card Formatting Changes
    • Just some small changes to make it more compact and emphasize the subtotal, as it's the more relevant number for quick access; as per Stacy.

July 19, 2025: Item Implementation!

  • Items are now stored in my local database and can be queried!
    • Items are now fully tracked!
    • this should lead to a lot more features down the road!
  • Complete overhaul of the location detail page!
    • The top of the page shows all the items that are waiting, sorted by aggregate quantity - ideally showing you what's actually dragging at each stand.
    • Each order number is now a link to the appropriate page in Tapin2.
    • Each order now includes a list of the items on the order.

July 18, 2025: Smarter Updates & Complete Financials!

  • Implemented server-side timing so the dashboard accurately shows when the order data was last refreshed and when the next update is expected.
  • Completed the financial totals, including combined subtotal, tax, tip, and grand total across all locations.
  • Ensured all large monetary figures are now easy to read with commas (e.g., $116,044.00 instead of $116044.00).
  • Sped up the updates to 10 seconds!
  • Added a change log so you know what's changed and what's new!

July 16, 2025: Financial Insights & Location Details!

  • Added financial data to the dashboard, providing more detailed insights into sales.
  • Introduced a breakdown of orders by location, giving a clearer picture of activity at each point of sale (still a work in progress!).

July 15, 2025 (Katy Perry Event): Improved Order Views!

  • Changed how orders are sorted on the dashboard to be alphabetical for easier reading.

July 14, 2025 (Enrique Bunbury Event): First Look & Stress Test!

  • Built a basic version of the dashboard interface so the data could be visualized (prior to this, it was just raw JSON being rendered).
  • Put the Tapin2 API through its paces to make sure it could handle lots of orders during a busy event.

July 13, 2025: Realtime Tracking Begins!

  • Started implementing the realtime order tracking feature.
  • Set up the system to record new orders into our database as they come in.

July 12, 2025: An idea and a dream (kick-off)

  • The dream here is to have a realtime dashboard to see how the event is fairing and provide invaluable information of financials and business in each stand.
    • Ideally, this would mena integration of Mashgin, Toast and Tapin2.
    • The ability to see financials from all sources in real-time
    • The ability to view historical reports for every event
  • Started implementing the realtime order tracking feature.
  • Set up the system to record new orders into our database as they come in.
Roadmap

Known Bugs

  • Next Event Page
    • Right now, it only returns the next event of the current day. Meaning that if there are two events in a day and the first one has already passed, it will show the one that has already passed. Not a critical issue, but something I'd like to fix.
  • Starred Reports
    • New issue where starred reports aren't able to be queried. Working on fixing this ASAP.

Secure Access & Scalability

  • Move the dashboard to Azure.
    • This will allow for more secure login using Microsoft accounts.
    • Only authorized users will be able to view sensitive data.

Location Display and Updates

  • More options for location display on main dashboard
    • Ability to sort dynamically or alphabetically.
      • Implemented on July 15th!
    • Hide specific locations from the main view based on user preferences.
    • Display visual indicators for paused locations, locations that are struggling with a specific item.
    • Ability to pause locations from the dashboard (waiting on Tapin2 to fix their UTC timing issues with location pausing).
    • Implement a feature to show the current average time it takes for tickets to be processed at each location.
    • Direction Indiactors
      • Showing an up/down arrow for orders in each status so that you can see if it increased or descreased since the last update or within a specific time period.
  • Improve the individual location view to display more comprehensive item-level information for each order.
  • Introduce color-coding for individual tickets based on their time to quickly highlight performance.
    • Green: Less than 5 minutes.
    • Yellow: 5 - 10 minutes.
    • Red: 10 - 15 minutes.
    • Black: 15 minutes or more.

Variable Refresh Rate

  • Refresh rate being adjusted by Admin users for the following event states:
    • Event Live
      • The refresh rate when the event is initialized and under 25 orders/minute
    • Event Busy
      • The refresh rate when the event is live and over 25 orders/minute
    • No Event
      • The refresh rate when there is no event