(3.1) Data Modelling

The Backing Store of Manage.me

Kshitij Sachdeva
3 min readJul 8, 2017

Hi Everyone, i am back with the next series of the blog posts , sharing the further steps of my journey from the Idea to the MVP of my Webapp Manage.me, the product i am working on as a Hasura Intern. With the final few weeks left in the internship, i am in the midst of the internship, the most adventurous phase of this magnificent journey.

Database Schema

The main feature of Manage.me is management of goals and tasks for better management of time and hence an increase in productivity, for more on details on the idea itself please do read my previous blog posts , link attached below,

Simplicity and targeted use case of easy time tracking and analysis was the main feature of the app, hence without adding any useless gimmicky features as in various other apps available , I have kept things simple and concise, following is the schema view of database for Manage.me.

Event_store

This is the main table to store all the events of all the user and details of the events, all though the field names are self-explanatory, but i would still like to explain the detailed usage of all the fields in all the tables,

Event_id : a unique integer value to uniquely identify every single record (event) independently. this is a primary key and cannot have duplicate or null values

Title : stores event name, cannot be null, can repeat though.

Start : this field stores the starting timestamp of the respective event.Timestamp here is a combined format for date and time , for example : 08–07–2017T10:01:36.

End : this field stores the ending timestamp of the respective event.

Category : stores the category the event belongs to like study, party, work etc.

Duration : this feild stores the duration in seconds for which event lasts for example 3600 sec for 1 hr.

Users

The aim of the users table is to store all the information about the registered user , here in the model i have separately shown the table but almost all the content of this table can be stored in the default user table provided by the Hasura Platform, just for the sake of understanding the schema i have included this as an independent table here.

User_id: the unique number , primary key , given to every user to uniqely identify a user and its record in the table.

Other fields like name, email, phone no. have usual meanings and contain what the name suggests , apart from general data we have profession and age group , this is for us to do some data analytics and provide a collaborative filtering(machine learning) based smart suggestions to a user for better management if his precious time.

Report_View

This is not a table but a view , this view will contain the sum of duration of all the events in particular category added by the logged in user as a record , thus giving an insight of how much time is allocated to Which category. This will help provide data to generate reports and smart suggestion (to be included in 2nd ver of the app).

so that all folks!, all about the data model of the Manage.me . Again i would like to Thank Hasura for providing this opportunity for identifying the idea and building the app, soon I will be writing about further development steps of advanced features of the app as i go through the implementation of all the thoughts , the most bumpy part of the road come and most interesting too.

Stay tuned ….!

--

--