Working on the Count On It app
Count-on-it #
Read on GitHub
Table of Contents
About The Project #
- This app will let you count in a flexible enough way to use it for simple things like how many cups of water you've drank, to where you are in your show. It will also let you extract calculations from count history and organize your different counts into a clear view
Why make this #
- I use myanimelist to track different anime that I've watched, and wished there was a more generic version of it for all my shows. I also wish I could have a basic counter app to keep track of random things and possibly to do different analyses with the data I generate. I realized that myanimelist is largely just a list of shows that I'm pressing an incrementer on, and is no different from the kind of counter that I wanted. So I decided to make this!
Progress as of 03/21/23
Example of what a finished product would look like
General outline #
Tables #
Counter table #
- Going to do it all on one table. This helps alleviate the entire issue by making column names match between tables for counters so that the tables. Instead, in the view I'll allow users to save the name as an alias. So you'd have a generic name column for your books, movies, shows, etc, but then when you're viewing it under a view called something like "anime", the name will appear as "Anime name" or something instead. Nothing is saved if it's not saved to a view.
Log table #
- This will just be the output of the counters. It would have the same columns, and the views would work the same
Views table #
- Most of this will just be the query that's generated and then saved by a question using a WYSIWYG editor. It will also have some properties like the ID, name, created date, etc. Would save if you're looking at log or counter view and any relevant header info like filters, columns, sort, and alias. Need to think of anything else to be included.
Link table #
- Used to link views to corresponding counters, columns, filters, user's query, etc. I need to think about if I need multiple link tables for this, or just the one.
Basic example -
SELECT Counters.* FROM Counters JOIN CountersInView ON CountersInView.CounterID = Counters.ID JOIN Views ON Views.ID = CountersInView.ViewID WHERE Views.Name = 'anime' AND Counter.Score > 8;
Header #
- Drop down to say if you want to look at the counters, logs, or both
- Filters, lets you do basic filters on a row based on a column like "less than x"
- Columns, lets you select which columns to view
- Export, exports to csv
- Sort, as basic as filtering
- SQL, for the advanced
Main screen section that shows the currently toggled visible counters either - #
- As the counters themselves
- A spreadsheet style log of counter clicks
- Both, I imagine something how it looks with a parent and subtask in Asana, but like instead of subtasks it's the logs
Sidebar #
- "Views" which is just saved views
- Name that's mapped to a query, used by a view component to render counters/logs and apply filters
- Might be worth considering having nested views. So that someone could have "stories" and then "books", "TV", "Movies" under that.
- Counters
- This is just row on a spreadsheet looking view where each row is a counter
- Logs
- This is basically like Counter, but for the logs. It'll be more than one row, but it'll still be filtered down to just the logs from that counter.