I mentioned in last week's update that I was reviewing database structures in light of some new discoveries I made regarding the technology I'm using to build OWL. I think I have finally resolved this, mostly to my satisfaction, for the time being at least. I'm to the point where the database now works the way I want it to with the current feature set, with some built-in planning for the future.
After a couple of weeks of false starts, I finally got around to working on the dashboard a bit. However, I quickly realized that there are some limitations to what's currently available as far as charting and such goes. I'm still reviewing this and ultimately, I may need to expand the database a bit to be able to do what I want to, not only from a charting perspective but also from a leaderboards perspective. I may have to deploy a work-around that isn't pretty but I think it'll be faster than doing it by "the rules" of proper database design. We'll see. Again, a quick of working with something new.
I also made a few other tweaks to the user interface in general. The one major decision point I'm at now as it relates to the UI concerns how I go about adding new goals, sessions etc. There are two ways I can see myself doing this. I've tried both:
1) make a section "appear" above the appropriate table where you fill out the data needed, or
2) continue to use popup boxes where you fill out the data needed.
#2 is more mobile-friendly, I think, while #1 looks pretty slick on desktops. For now, new goals are created using method #1 while projects and sessions are used using method #2. I'm just going to let that sit for a bit to see which version wins out. Since the goal is to make this all mobile friendly, potentially even wrapped for the app stores, I'm trying to keep that in mind as I go along.
On the Agenda This Week
This week, I'll be fine tuning the existing pages more. The material design inspired "add" button needs to be consistent across all screens so I'll need to make that happen.
More work on the dashboard is also on the agenda, including finding a way to hiding charts a user might not want to see. I'm also contemplating, as I mentioned above, whether I may need to diversify the database a bit to quickly get the data I need for charts to avoid calculating everything behind the scenes. We'll see how that turns out but it's a thought.
I've also started exploring creating a leaderboard. This has turned out to be more of a nightmare than it should be. From a normal database perspective, this is easy to do. Just sum everything up that's been done within a data range, by user, and sort it in descending fashion. So, the theory is simple. Now, how to do it within the confines of Bubble is turning out to be more of a headache because of how objects are constructed. I'm hoping to get that sorted this week. The goal initially is just to make a simple word count and/or duration leaderboard that ultimately will be public for everyone to see. From there, I'll look at whether to use daily, weekly or monthly totals for larger scale. But, first things first: get the thing to actually work.
Finally, I need to get started on creating a proper signup screen. There is one already but it's pretty limited. I want to be able to include limits on usernames etc. and also start outlining some sort of on-boarding process. We'll see where that ends up. For the beta testing, this isn't as important so I'm not too worried about it yet. I do want to be able to include a way for users to invite others, should they want to share. This goes a bit hand in hand with the social aspects so I think I'll limit it at that but ultimately, the idea there is that you can invite someone and then be notified when and if they join.
Anyway, I think that's about it for this coming week. It should keep me busy together with writing my stories as well.
I'd love to know what you think.
Oh, and stay tuned for an updated preview video, likely by this weekend.