0% found this document useful (0 votes)
72 views

Zendalona - Maths Tutor Android IOS Version

Uploaded by

Durgesh Mishra
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views

Zendalona - Maths Tutor Android IOS Version

Uploaded by

Durgesh Mishra
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Zendalona- Maths Tutor Android

iOS version

Google Summer of Code 2024

Name: Durgesh Mishra


Country: India
Email: [email protected]
Preferred Communication Method: Telegram, Email, Video Conferencing and
Call
Project: Maths-Tutor Android and iOS version

About Me
I am currently in my final year of my Bachelors from Swarrnim Startup & Innovation
University (SSIU) in Computer Application (2021 - 2024). I have been tinkering with code
since my school days. My superhero-powers include talking to machines using programming
languages, teaching them using Machine Learning and contributing to everyone’s welfare by
contributing to open-source as well as displaying my ideas using native-apps. I do have
some infinity stones which include Kotlin, Java, Android, C++ and JavaScript. I am a self
taught developer and an enthusiastic individual. I also regularly participate in a lot of
hackathons and have won a few of them. I love working on interesting and challenging
problems and have spent many of my nights hacking on some cool projects. I started my
programming journey from the 1st year of my college, and gradually developed a keen
interest towards problem solving and product development
Experience:

● Software Engineer Intern At CodeClause-


○ Expertise in Kotlin for Android development, employing Volley for efficient API
communication in a Weather App and enhancing user interfaces with
RecyclerView for data presentation.
○ Enhanced problem-solving and teamwork skills in code reviews and project
optimization.

● Software Engineering Intern At Kgpellence


○ Led the KGPELLENCE app from inception to launch, now serving over 4500+
users. Oversaw project management, design, and implementation.
○ Integrated Firebase Real-time Database and SQL Authentication for
robustness and security.

● Open Source Contributor- GSOC'23


○ Mentored over 1000+ students in Algo++ and C++ Launchpad courses and
taught advanced algorithms and data structures etc in offline and online
class.

Availability:
I reviewed the whole GSOC timeline and I would be able to devote approx 40-50 hours every
week to GSOC. During 25th to 10th June I will have my end-sessional examinations, and time
devoted would be around 2-3 hours per day for that time.

I will be devoting my full time to this project and I do not have any other Summer internship
or Job. I have no obligations after May, and would be devoting all my time to GSOC.

I will be reporting my work over daily scrum mails on the mailing list. I would strive to be
regular, and sincere with my scrum and daily updates as I understand that selection in this
project will require a serious commitment and 100% devotion from my side.
Expectation From GSOC and Zendalona:

Participating in the Google Summer of Code (GSOC) presents an invaluable chance for me to
elevate my programming skills and gain insights into production-level project development.
This initiative stands as a gateway for students like myself to engage with projects of
significance. The opportunity to collaborate with Zendalona's world-class developers
promises a blend of learning and enjoyment. My interest in the Maths Tutor Android iOS
version of Zendalona stems from its potential to deepen my understanding of free,
open-source development. This project is not just a pathway to enhancing my programming
prowess but also a venture into native app development at a production scale. Open-source
development, at its core, is transformative. It fosters mutual growth, learning, and enduring
achievements. Contributing to Zendalona's evolution through GSOC is not only personally
fulfilling but also a testament to the impact one can have on an organization's trajectory. I
view my involvement in this year's GSOC as a strategic use of my technical, leadership, and
communication skills to bring forth a pioneering project under the guidance of Zendalona's
mentors. With a proven track record in app development, I am poised to contribute
significantly to the Maths Tutor Android iOS version. This project not only champions
collaborative discussions but also holds the potential for scalability due to its
comprehensive feature set. Being mentored by Zendalona is a privilege I eagerly anticipate,
ready to refine my development skills and absorb vital knowledge and tips from esteemed
mentors.

Important Links:

Link To LinkedIN Profile: The following is the link to my LinkedIn Profile.

Link To Github Profile: The following is the link to my Github Profile.

Link To Live Project: The following project is a native app which features live
academic-material and announcement features based on Kotlin and Firebase.

Link To Product Listing Project: The following project is a product listing like
e-commerce that admin panel and user panel based on the dataset provided using SQL.

Link To Portfolio Web :The following project is a Portfolio Web App based on Node.JS
and Express.JS.
Specifications And Introduction
The current Math-Tutor computer version offers a solid foundation for mathematics
education but is limited by its platform constraints. This project aims to extend this
foundation by developing a comprehensive smartphone application that brings the entire
suite of Math-Tutor features to mobile users, while also introducing new functionalities to
enhance the learning experience. Leveraging common smartphone features such as Touch
Screen, Accelerometer, Microphone, GPS, Clock, and Magnetometers, the app is designed
to deliver an engaging and interactive educational experience. It focuses on improving user
engagement and learning effectiveness through clear and intuitive feedback mechanisms,
including stereo sound and vibrations, aiming to provide a well-rounded and impactful
learning journey.

Project Goals
During this GSOC term, I would deliver the following:

1. GPS and Location API: Utilize Android's Location API to access GPS data, teaching
users about distance and spatial relationships based on their real-world location.
This can include calculating distances between two points or navigating from one
point to another.
2. Multi-Touch Input: Use Android's MotionEvent class to handle multi-touch input,
allowing users to draw shapes on the screen. This can be particularly engaging for
teaching geometry, as users can directly interact with geometric concepts.
3. Audio Capture: Implement the MediaRecorder or AudioRecord classes to capture
audio input through the device's microphone, enabling the app to recognize clapping
or spoken answers.
4. Math Calculations: Implement trigonometric calculations using Java's Math library,
enabling the app to solve problems and provide exercises on the fly.
5. UI and Other Features: Improvements on UI/UX of the application.
a. Revamping the UI to give a better, easy and feasible interface to the app.
b. Implementing popups, loaders and notifications wherever necessary.
c. Using Media queries to implement perfect mobile responsive application.
d. Make the Ui appealing and also refactor the code for modularity.
e. Improvement of icons and fonts wherever necessary.
6. Documentation: So as to make the app build simple for non-experienced users, I will
be providing good documentation.

Some More Proposed Features:

1. Notifications Emails: Users will receive notifications emails, whenever there occurs
some specific event like receiving reply or upvote on their instance..
2. Follow: To follow(or say ‘watch’ in github) any instance such that the user would get
notified whenever a new reply is posted on that instance.
3. Markdown: Markdown support in the text editor and also the markdown support
when the instance is rendered.
4. Graphics and Animation: Implement Android's animations to effectively teach angles
and trigonometry, showcasing dynamic changes.

The above proposed features were some basic features that I found missing in the question
tool app. And I believe, if we could accommodate these features in the app we can definitely
improve Question Tool’s user experience and user interface.

Implementation
1. Documentation: So as to make the app build simple for non-experienced users, I will
be providing good documentation along with a FAQ. I will also try to modify the
existing code to be as user friendly as possible by using relatable variable names and
commenting on the code as much as possible.

2. GPS and Location API: To use Android's Location API and GPS in your app, add
location permissions in AndroidManifest.xml, request runtime permissions if needed,
obtain a LocationManager instance, and request location updates. This allows your
app to access real-time location data, essential for functionalities like mapping,
tracking, and geographic education.
3. Multi-Touch Input: Implement Android's `MotionEvent` class to enable multi-touch
input in your app, allowing users to draw shapes directly on the screen. This feature
enriches geometry teaching by providing an interactive platform where users can
explore geometric concepts hands-on, significantly enhancing the learning
experience through direct manipulation and visualization of shapes.
4. Popup-Notifications(UI/UX): Notifications are the most important feature for user
interaction on any social network platform. Currently there is no notification feature in
our Maths Tutor Android Version. Implementing this feature will surely improve user
collaboration on and off the Maths Tutor. As there would be generally less number I
will implement.
For enhanced user interaction, integrate popup notifications into the Maths Tutor
Android app. These notifications, akin to social platforms, will elevate user
engagement. Crafted using a custom model, notifications will appear near the app's
navigation bar using Android's NotificationManager. Employing Android's UI
elements, such as Snackbar and RecyclerView, notifications will feature various
styles, custom designs, and timed displays, optimizing user experience and interface.

Along with the popup the user will get a dedicated notification panel where all the
previous notifications will be listed and the unread one’s also. The notifications will
help to improve the UI of the Question tool application in a drastic way.

I will build Notifications of following types :

Action Recipients

When someone post an instance The User Itself

When someone replies on the User of the instance and the people who liked
instance the instance

When someone likes/upvotes an Owner of the instance/answer and the people


instance/answer who liked it.

Notification UI for saved notification in navbar


5. Audio Capture: Utilize Android's MediaRecorder or AudioRecord classes to capture
audio input from the device's microphone, enabling the app to recognize clapping or
spoken answers. In Kotlin, initialize either class, start recording upon user interaction,
and process the captured audio data to detect desired sound patterns for interactive
functionality.
Meteor.Js can be easily integrated with Socket.IO. On the client side we can use
socket-io-client package.

The following code will be used to emit an event whenever the text in the editor will be
highlighted or we can say when the onSelect event will be triggered in the dom.

For multiple admins and moderators from the user end we can also show them the
username of the admin or the moderator along with the highlighted text. The functionality
can work with multiple admins and moderators. From admin side admin can see all the
highlighted text by him or by any other admin/moderator along with the username similar to
that of the user but no name will be shown to his own selection as there is no point of
showing any admin his/her own name.

6. Archive Functionality: In my views the functionality can be implemented in two ways.


Firstly we can put a Download as PDF button in order to let the user download a
complete session of Question tool. The pdf will include the whole conversation and
some statistics on how many like were on the instance, how many upvotes were on
any answer, how many answers were there for an instance etc. The following code
snippet demonstrate the code that can be modified to achieve this.

The pdf-kit module will be used for this. The other way around to archive a session can be to
store the necessary details in the cache of end user’s browser like devdocs.io. But in my
view pdf will be the most simplest and efficient way to archive a session.

7. Edit Functionality: A button will be provided along with the instance in order to
update different properties of an instance by the owner. A proper UI will come in
order to update that instance. The following code similar will be similar to the original
implementation of the feature.
8. Other UI/UX improvements: There is a high need to revamp and improve the design
and UX of the application. We can use some modern frameworks like Bootstrap or
Materialize, Semantic Ui in order to quickly change the frontend of the application.
The looks of any application should be appealing and engaging. I will change the
design of the application and also make sure that mobile responsiveness of the
application is maintained to its fullest. Elements like Loaders will be implemented
wherever necessary along with font update. The navbar and the footer of the
application will also be updated to give a new fresh look to the application. Also i can
work on decreasing the load time of the application and making the front end faster.

9. Emails: We can use the Email module of meteor JS in order to send the mails to the
user whenever he/she gets a reply on it’s instances. The following code will send the
emails to user.

10. Follow: Currently there is no way to follow an instance in Question tool by which
instance originator can be notified about the activities going on in the instance they
are interested in. Even if the user is not in the instance ownership he/she will be
notified through notifications and emails about the instance activities, if he ‘follows’
the respective instance. I will implement it by creating a new model which will have
references of both users and instances, by has_through relationship. By which, every
single follower will be getting regular updates.

11. Markdown Support: Markdown functionality should be added in the text editor when
anyone posts any instance or an answer to it.
12. Omniauth: If we can implement login with google and github functionality then user
onboarding on the application will become super easy and efficient. This can
achieved easily using meteor JS. These social logins are now-a-days common in
every web app featured online.

Timeline/Project Plan:
GSoC is round about 12 weeks duration, with about 25 days of Community Bonding Period in
Addition.
I will be spending 10% time fixing the bugs left out in the current version of the app.
80% time on adding new features to the App.
Remaining 10% time on testing the app, preparing Wiki and FAQ for the template.
The detailed timeline is linked below:

Legend: Importance and Time Devoted: > > >


Time Frame Start Date End Date Task

Community Bonding 1th May 26th May

27th May 29th May Requirement Gathering


and Documentation

29th May 1st June UI enhancement of the


Application - 1

1st June 5th June Implementing Edit any


instance functionality

5th June 10th June Implementing Reset


Password Functionality

10th June 20th June Implementing QR code


functionality along with
Send emails on getting
an answer on instance
functionality

20th June 25th June UI enhancement of the


Application - 2
including fonts update
and an initial testing of
the application

Phase 1 Evaluation 25th June 28th June

26th June 12th July Implementing archive


an instance session
functionality along with
initial documentation
for the application.

12th July 24th July Implementing Partial


implementation of Real
time remote control
functionality including
some UI improvements.

Phase 2 Evaluation 24th July 26th July


25th July 30th July UI enhancement of the
Application - 3
including NotyJS
implementation for
popup notifications and
markdown support(If
necessary)

30th July 7th August Remaining


implementation of the
real time remote
control feature.

7th August 11th August Implementing Previous


notification feature
along with UI
enhancement of the
Application - 4
including necessary
loaders
implementation
11th August 17th August Omniauth
Implementation And
Follow any instance
implementation Along
with Thorough Testing,
Exception
Handling and
distributing the app
among beta testers (if
allowed).

17th August 19th August Preparing


Documentations, Wiki
and
FAQs and a Webcast
on the FInal
Product.
I can assure you that if I get selected to work with Berkman Klein Centre this summer, I
definitely will try my level best to make this project successful and will love to continue
working with Berkman’s other projects even after the summer.

I would love to mentor in any Educational programs that Berkman Klein Centre is a part of.
Further, I would really love to work under such great mentors of Berkman Klein Centre.

Also for some reasons, if I am not selected this year even then I’ll try to contribute to this and
other projects as much as possible and retry again next year.

Looking forward to working with you.


Thanks And Regards
Sanket Singh

You might also like