Zendalona - Maths Tutor Android IOS Version
Zendalona - Maths Tutor Android IOS Version
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:
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 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.
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.
Action Recipients
When someone replies on the User of the instance and the people who liked
instance the instance
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.
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:
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.