G

GitMath

A Collaborative Way to Solve Problems

The problem GitMath solves

Math has been, and still is a very challenging subject to a lot of people around the world. The subject requires continuous teaching and practice for students. The lack of a unified collaborative platform for math has caused a gap in the mathematical fraternity. Due to this, a lot of people get demotivated to take up math during school and college.

The COVID-19 pandemic has taken a toll on the educational sector. With the rise in demand for online learning and assessment, education standards are being compromised. Especially, for math teachers, it has become extremely hard to bring the blackboard experience online.

Also, there is no platform for Machine Learning and AI Engineers to get help in complex mathematical calculations during the development of algorithms. This can, at several times hinder the development of some potentially great algorithms.

To overcome all the above mentioned problems, we wanted to build an application that enables collaborative problem solving at the comfort of a smartphone. We wanted to allow a user to create new repositories, fork already existing repositories to collaborate to them and create a Pull Request once it's solved.

GitMath lets you create new problems, pull and fork existing problems to collaborate and contribute to and once it's solved, push it back to the main repository.

GitMath can also be used for classroom teaching and discussions where everyone gets a chance to learn. It can also serve as a great platform for teachers to give assignments and grade students accordingly.

The app also provides the closest experience of solving problems on pen and paper.

The app helps Machine Learning Engineers in providing solutions to complex mathematical problems thereby helping them in developing powerful algorithms.

Can also be used as a Whiteboard by Designers to note down ideas and collaborate with other designers accordingly.

Challenges we ran into

Our toughest challenge was to get the data from whiteboard when a user draws or writes a problem on it and also fetch the most recent whiteboard data from the database. The data was imported as svg so we used firestore's string datatype to handle it.

The next challenge was the Push, Pull, Commit parts of the app i.e. whenever a user updates a problem, contributes to another user's problem or makes changes to their own problem these were to be recognized and stored accurately with proper version management. For the version management we used hashing to me it easier as well as to track the different versions of the app.

Discussion