Inspiration
Math has been and still is a very challenging subject for 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 with them, and create a Pull Request once it's solved.
What it does
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.
Provides the closest experience of solving problems on pen and paper.
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.
How we built it
Stage-1: We built the Wireframe of the app using the basic tools i.e. Pen and Paper of course.

Stage-2: Once we had the basic idea through our wireframe designs, we transferred & re-created some designs to a digital form using Adobe Xd.

Stage-3: Coding and Developing the Application: We developed the mobile version of our idea using Google's Flutter which is an open-source UI software development kit and Dart for Server Side Communications. We used Google's Firestore for our database storage. We also used Firebase's Authentication to provide for Email-based Sign In/Sign Up along with future support for other types of authentication like Gmail, Facebook or GitHub
Challenges we ran into
Our toughest challenge was to get the data from the whiteboard when a user draws or writes a problem on it and 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 version management, we used hashing to make it easier as well as to track the different versions of the app.
Accomplishments that we're proud of
- Developed a fully functional app using Flutter and Dart as our primary development language.
- The SVG from the whiteboard after we write or draw a problem is being parsed and sent to the firebase. It's also being fetched from the database after another user updates it or contributes towards it.
- Developed everything from scratch, from the design of our app to a fully functioning app and also to our website in a 36 hour development time was the main accomplishment that we are proud of.
What we learned
- We were just getting started with Flutter development, but this hackathon gave us an opportunity to dig deeper into Flutter and get a far better understanding of the concepts as well as the overall working of the user interface. -. We learned to use Bootstrap Studio to develop websites as our teammate recently got his GitHub Student Developer Pack. -. We also learned about adding OAuth based authentication to flutter apps
- Getting the data from the whiteboard, how the SVG is parsed was another thing that we learned.
What's next for GitMath
- Take the project to the public and try to develop a better UI.
- Develop a Web Version of the project so that users can contribute or solve from their PCs and this will help Schools and Universities to make use of our platform while projecting the web version to a screen and students can solve them simultaneously from their devices.
- Use Natural Language Processing so that if users write a problem or have a problem on a piece of paper, the NLP Model will recognize it and convert the writings from paper to a drawing/writing on the whiteboard.
- Add support for complex Machine Learning / Artificial Intelligence Algorithms so users can solve or contribute to those types of questions.
- Make the version management even better and if possible add support for iterating upon solutions given by users.
Built With
- adobe-creative-suite
- adobe-illustrator
- bootstrap-studio
- dart
- firebase
- flutter
- google-cloud
- photoshop
Log in or sign up for Devpost to join the conversation.