Hackathon has ended.
PointBuddy
I built a prototype of a feature or a larger app that I'm building. It's a full sortable, filterable, and editable spreadsheet view of an attendance ledger. The intent is to be used by student organizations to track their attendance records. On its own, it's a highly-reactive table web table interface. It has immutable transactions that can be used to track a history of attendance adjustments. I will say, the thing that really excites me is the ability to integrate this with some of the features of the broader app that this was prototyped for 😄
Of note, this is a prototype of a larger feature for an application. I didn't lift any code from the existing application. I didn't lift any code from the existing application. In fact, the only existing infrastructure is the point balances and point transactions. The whole UI is from scratch. I wanted to mention this though because I new in what direction I wanted to go with those models, and I want to be transparent about that. Even if it's disqualifying, I'm glad to have participated and gotten this prototype done!
Of note, this is a prototype of a larger feature for an application. I didn't lift any code from the existing application. I didn't lift any code from the existing application. In fact, the only existing infrastructure is the point balances and point transactions. The whole UI is from scratch. I wanted to mention this though because I new in what direction I wanted to go with those models, and I want to be transparent about that. Even if it's disqualifying, I'm glad to have participated and gotten this prototype done!
👋🤠
Central Time (US & Canada)
![](https://secure.gravatar.com/avatar/c914752b24816ee4df42f20271bf5b51.png?default=mp&rating=pg&size=128)
Built with:
- Hotwire
- Tailwind
- Lots of love and elbow grease
It's a reactive table interface built using a state stored in user sessions and some abstraction built around that. Towards the end, I was running out of time so the abstraction turned more into spaghetti!
Application Screenshots
![](https://railshackathon.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZU09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e26f75f48ac3473c1d3dc11386226f6096895e70/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RkhKbGMybDZaVjkwYjE5c2FXMXBkRnNIYVFMMEFXa0M5QUU9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--717a738d23a1e593ae8f6c4c6fd471afd2a62d40/Screen%20Shot%202022-09-18%20at%206.58.14%20PM.png)
![](https://railshackathon.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZVE9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--4e7d521d07ee8ecadc7b2c9047420309886c5ae7/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RkhKbGMybDZaVjkwYjE5c2FXMXBkRnNIYVFMMEFXa0M5QUU9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--717a738d23a1e593ae8f6c4c6fd471afd2a62d40/Screen%20Shot%202022-09-18%20at%206.58.42%20PM.png)
![](https://railshackathon.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZVU9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--1cb1920ce146cc47f309632c0c74d5a001291cea/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RkhKbGMybDZaVjkwYjE5c2FXMXBkRnNIYVFMMEFXa0M5QUU9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--717a738d23a1e593ae8f6c4c6fd471afd2a62d40/Screen%20Shot%202022-09-18%20at%206.59.01%20PM.png)