Hello everybody!
Basically, I want to create reports for my Tenants, to be able to see how their community is doing, and also how they progress financially over time.
I'm a bit lost on how to gather this information, where to store it, and how to retrieve it later to create charts based on the data in my application.
Not sure if this is relevant, but I'm using NodeJS + MongoDB on the back-end.
I'm posting this here because I know there are a lot of founders here that probably faced this same challenge and found a solution.
So yeah, any help is highly appreciated!
Thanks!!
Hi Ignacio, founding member of pushmetrics.io and query.me here.
Feel free to message me if you would like help - we are somewhat experts when it comes to reporting.
One of our apps is also running on Mongo so I understand the problems you might face with analytics, no-SQL, and expensive mongo queries...
Ignacio - can I email you? I've built reports at some previous startups and would love to discuss more.
a quick tl;dr on what we used - ran scripts on our db using lambda cloud functions that output a pdf to s3 and then email that PDF.
For data you already have in your database, you can use tools like metabase to explore and create reports.
It's a BI tool you can also hook up to mongodb. It allows you to relative quickly analyze your data and maybe already share data with your tenants, improving the reports as you go along.
What kind of things do you want to track? Page views, button clicks?
Do you want to show those analytics to users or not?
Creating your own analytics system should not be too difficult. Insert events that you want to track into an events database and then retrieve and display them later.
The schema could be something like this:
type: event type
tenant: tenant id, name or whatever else used to identify
date: date of event
Yeah, the problem is the kind of events. For instance, I'd like to track:
Total users, total active users, total cancelled users, number of log ins..
Then, for finances:
Subscribed users evolution, conversions, average value of user, revenue...
So yeah, for the total users, active, etc, I think the best way to store it is checking the numbers once a day and just store them somewhere. And for the current day, just retrieve the data from the database. But I'm concerned about the performance side of things if I do something like this..
Thoughs on this?
Thanks for your response btw!
Did you make any progress on this?
Sounds to me like you would have to send all your data to a datawarehouse using something like fivetran.
Once you have it all in one place it would be pretty easy to get the right SQL queries and reports going...
Let me know if you need any help... we are currently working on a product to solve problems like this.