I finally deployed my listing manager app to Heroku. For the longest time it's been sitting on local host, simply because it needed API calls to provide the content to fill the views and the API keys needed were my own. StubHub's sandbox hasn't been working for longest time and they haven't been responsive to this issue. So to get around this, I set up a demo account with limited permissions, basically, you can GET from the API, but cannot PUT/POST/DELETE. The downside is it's still limited to 10 API calls per minute, which is why I'm not going to post the demo account credentials on here. But if you'd like to take a look, get at me and I'll send you the login credentials.
New Features Added
User Permissions
As I eluded to in the intro, accounts now have permissions. This was originally done so that I could have a demo account, but I quickly realized having a permissions table belonging to users would be helpful for managing master > sub accounts since many ticket resellers have employees who also need access to certain things (such as updating prices or creating/deleting listings) and not others (such as profit and loss, or account preferences). I didn't do any research on the correct way to implement permissions, so my design might not be up to snuff with convention.In short, Account has_one Permission and Permission belongs_to Account. In the controllers, some methods have before statement that checks current_user.permission for the correct permissions. If the user is not permitted, he/she is redirected_to the current page with a flash[:notice] letting the user know they do not have permissions to access that method.
User Settings
Some of the features in the app are susceptible to a users' unique preferences. For instance, events change color depending on how far out the event is. Some events, such as concerts might start peaking in sales immediately after an on-sale as well as a few weeks prior to the event, so having an event turn red three days out wouldn't be of much use. Conversely, soccer tends to be pretty dead until one to three days from the event date. With User Settings, each user (whether master or sub account) can set their own preferences for when events turn red/yellow/green/blue. In addition to event date coloring, users can select how many days Recent Sales covers. This is useful because a large brokerage may only want to see the last 24 hours, while a small brokerage finds it more useful to see the last seven to 14 days worth of sales. And finally, users can set the chart types that show on previous event reports.Report Charts
Problem
<%= @chart_labels %> => ["January", "February" ...]
Solution
<%= raw @chart_labels %> => ["January", "February", ...]
More charts are coming in the near future... ideas? :)
There were a host of other small things added, like CSS styling, locking out User CRUD, and finally the process of deploying to Heroku, but all that's less interesting, so I'll omit that for now.
The app can be viewed at https://listingsplus-staging.herokuapp.com
If you'd like to poke around, let me know and I'll give you the creds.