I became a parent recently and have been browsing a lot of parenting forums. One gripe I have is that a lot of these forums are focused on American readers and the discussions seldom happen with metric units. 

So when someone writes “my baby was born at 7 lbs and 3 oz”, I have to immediately look up Google to understand what it means in kilograms.

Now there are hundreds of such use-cases. If you are buying a house and are used to “square feet” measurements, you are going to have a tough time converting to them from square meters. 

Today, Google does a lot of these calculations right from the search bar. Even then, there are several niche calculations that you need a custom calculator for. 

This is the idea behind MakeMyCalculator.com, a website I launched back in 2012. The site allowed users to create custom calculators for their own use. Also, since these calculators are indexed on search, I hoped to create a platform that ranked for hundreds or thousands of calculator related Google search queries.

This is how the site looked back when I launched it.

Looking at the various calculator pages above, you will notice that a website like this has tons of potential even today. You can literally build a calculator that is very personal and something that only you would need.

You can also consider making an app for the iPhone or Android with this. A quick look at the Google Play Store tells you that while there are a number of calculator apps, there are not many that lets you build your own calculator. So perhaps you may want to build an application instead of a website.

But before I can talk at length about what your app or website could look like, I think it is worth telling you why my own website did not make it big. 

When I built this website, I was big on social sign-ins (using Facebook or other accounts to sign into your application) since I believed it could possibly help me with growing the website virally over social media in the future. 

What I did not account for is the fact that letting a third party platform take care of sign-ins meant that you have to stay on top of dev changes at their end. In my case, Facebook deprecated the script I had used to set up the login system. By then, my priorities had changed and I no longer had the time to get the site back working – and my site died subsequently. 

A good learning here is to have your own simple login system in your early days unless you have a strong reason not to. 

But fixing the login issues should not have been hard. Looking back, I think there is another reason why my site failed. My calculator pages were primarily just that – they had a calculator for you to perform your calculations and nothing else.

Courtesy : Archive.org

This made it difficult for my pages to rank even for low competition keywords. If my site had the ability to let users or the admin add content alongside the calculator, my pages would have ranked and that would have been motivation enough for me to fix the bugs that cropped up later.

In this article, I will take you through the basic PRD to get such a site built. Let’s start. 

Homepage

The homepage for a site like this serves two purposes – to let users sign up or login, and to give Google an easy way to crawl all the newly built calculators. You can of course avoid the second function by building a sitemap instead.

A sitemap allows you to keep your homepage pretty and devoid of too many links.This is good from a conversion optimization perspective. 

This is a clean landing page that keeps the focus on the sign up window. Your PRD should also tell the developer the various use-cases while using this login/sign-up system. 

  • Check if it is a valid email ID and also if the password meets your security criteria before registering the user. Otherwise, provide relevant error messages
  • If the user signs up with an email ID that already exists in the database, display an error that the user already exists
  • If the user tries to log in with a wrong password or an email ID that does not exist in the database, display a message like “You entered a wrong email or password. Please try again”. 

You will need a User_table in your database that stores all email IDs with encrypted passwords. Every user id will have its own unique User_ID field that will serve as its backend identifier

The homepage also links to the sitemap from the footer. When your site has grown big with several thousands of pages, you may need to plan a way to organize these links within the sitemap. At this point though, a simple page that lists out all the calculator pages in your database will suffice. 

The sitemap is dynamically generated and pulls the list of all calculators from the Calculator_table

User Dashboard

Once the user is logged in, you need to showcase two things: 

  • A list of all calculators they have built till now
  • An option to create a new calculator

The ‘Edit profile’ page in the above image allows the user to change their email or password. 

Clicking on the ‘Create a calculator’ option will take the user to the page where they can specify the formula to calculate. 

On the left side, you find the ‘My Calclators’ section that links will take the user to the respective pages where they may do their calculations. 

There is also an ‘Edit’ option. Clicking this will take the user to a page similar to the ‘Create a Calculator’ page – except that the formula is pre-filled with the option to modify.

Create Calculator

The calculator creation page lets the user enter parameters one by one. To calculate the area of the circle, all you need is just one parameter (radius). For more advanced formulae, the user may click on ‘Add parameter’ to add all the parameters.

These parameters can instantly show up in the dropdown beneath the ‘Input values’ label. This way, the user can simply click on the various parameters and math symbols to input the formula.

I have also provided a Description field for SEO purposes. This serves no purpose other than to add content to the page.

Database

The database for this website has just two tables. The first is the User_table that stores the user’s email address and encrypted password.

Calculator_table that stores the calculator details is a little tricky. This is because each formula is different and while you only need one parameter to calculate the area of a circle, there is likely a formula that needs several dozens of inputs.

The easiest way to do this is by creating a table that has provision to hold up to 100 parameters. That’s big enough to calculate most things. Such a table will contain the following columns:

  • Calculator_ID
  • Calculator_title
  • Calculator_description
  • P1, P2, …up tp P100 (if you want to have provision for 100 input parameters)
  • Formula
  • User_ID (the user ID of the account who created this calculator)

But let’s say you add more features in the future where a user could input a spreadsheet with hundreds or even thousands of rows of data (for example, a calculator to calculate your profits from your bank statement). It is unrealistic to expand this table to have another thousand or more columns. 

A more optimal way to do this is by splitting the Calculator_table into two different tables:

  • Parameter_table
  • Calculator_table

The purpose of a parameter table is to store the different parameters. It could be structured something like this:

  • Calculator_ID
  • Parameter_ID
  • Parameter_value

This way, when you want to create a new calculator to calculate the area of a rectangle (with length and breadth as input parameters), your Parameter_table will look something like this

With such a table, you can theoretically create a formula with thousands of input parameters with no trouble. 

MakeMyCalculator can be a fun and easy to do weekend project for even amateur coders. Should you decide to build an application based on this idea, be sure to reach out to me. Would love to share this here and on my Twitter.

Tagged in:

About the Author

Anand Srinivasan

Anand Srinivasan is a marketing consultant and a founder of Hubbion, a suite of free business apps and resources.

View All Articles