<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sugarlabs.org/index.php?action=history&amp;feed=atom&amp;title=Summer_of_Code%2FTarun_Kumar_Singhal</id>
	<title>Summer of Code/Tarun Kumar Singhal - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sugarlabs.org/index.php?action=history&amp;feed=atom&amp;title=Summer_of_Code%2FTarun_Kumar_Singhal"/>
	<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Tarun_Kumar_Singhal&amp;action=history"/>
	<updated>2026-06-28T02:00:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Tarun_Kumar_Singhal&amp;diff=100293&amp;oldid=prev</id>
		<title>Walter: Created page with &quot;==About Me== What is your name? My Name is Tarun Kumar Singhal.  What is your email address? My personal email address is tarunsinghaliitd@gmail.com and my university email ad...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Tarun_Kumar_Singhal&amp;diff=100293&amp;oldid=prev"/>
		<updated>2017-05-17T13:43:45Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==About Me== What is your name? My Name is Tarun Kumar Singhal.  What is your email address? My personal email address is tarunsinghaliitd@gmail.com and my university email ad...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==About Me==&lt;br /&gt;
What is your name?&lt;br /&gt;
My Name is Tarun Kumar Singhal.&lt;br /&gt;
&lt;br /&gt;
What is your email address?&lt;br /&gt;
My personal email address is tarunsinghaliitd@gmail.com and my university email address is&lt;br /&gt;
tarun.singhal@mail.utoronto.com&lt;br /&gt;
&lt;br /&gt;
What is your Sugar Labs wiki username?&lt;br /&gt;
Tarun Singhal&lt;br /&gt;
&lt;br /&gt;
What is your IRC nickname on irc.freenode.net?&lt;br /&gt;
My IRC nickname on irc.freenode.net is tarunsinghal92&lt;br /&gt;
&lt;br /&gt;
What is your first language? (We have mentors who speak multiple languages and can match you&lt;br /&gt;
with one of them if you&amp;#039;d prefer.)&lt;br /&gt;
My first languages are English and Hindi. My language of communication is English.&lt;br /&gt;
&lt;br /&gt;
Where are, you located, and what hours (UTC) do you tend to work? (We also try to match mentors&lt;br /&gt;
by general time zone if possible.)&lt;br /&gt;
I live in Toronto, Ontario, Canada. The time zone is Eastern Time Zone (UTC - 5). I tend to work in&lt;br /&gt;
evening till late night. It makes it 3 pm to 1 am (UTC), but it is adjustable. I will try to be active with&lt;br /&gt;
mentors on IRC chat and emails.&lt;br /&gt;
&lt;br /&gt;
Have you participated in an open-source project before? If so, please send us URLs to your profile&lt;br /&gt;
pages for those projects or some other demonstration of the work that you have done in opensource.&lt;br /&gt;
If not, why do you want to work on an open-source project this summer?&lt;br /&gt;
I have worked on various open source projects which are available on my Github repository&lt;br /&gt;
(https://github.com/tarunsinghal92/). There are mostly related to the application of Civil engineering&lt;br /&gt;
in Computer science along with some projects that are related to WebGL. But apart from that, I haven’t&lt;br /&gt;
contributed to any existing open source projects but I always wanted to. I think with Sugar labs, it will&lt;br /&gt;
a great opportunity for me to learn and contribute in open source. Becoming a part of a community,&lt;br /&gt;
which involves several people working together in a coordinated fashion, would help me to learn and&lt;br /&gt;
contribute more in open source projects.&lt;br /&gt;
 &lt;br /&gt;
==About My project==&lt;br /&gt;
We are looking for projects that will enhance the Sugar Learning Platform. Please consider how your&lt;br /&gt;
project will have impact on children learning.&lt;br /&gt;
What is the name of your project?&lt;br /&gt;
Sugarizer backend Dashboard&lt;br /&gt;
&lt;br /&gt;
Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why&lt;br /&gt;
do they need it? What technologies (programming languages, etc.) will you be using?&lt;br /&gt;
The goal of the project is to create the &amp;quot;Sugarizer Server Dashboard&amp;quot; for teachers and deployment&lt;br /&gt;
admin which can be used to control and manage the work of learners and manage and analyze all&lt;br /&gt;
activity on a Sugarizer Server. This would increase user engagement from both learner and teacher&lt;br /&gt;
side. It can be explained through a lot of use cases. Here are few of them:&lt;br /&gt;
&lt;br /&gt;
1. Today, leaners give the result of their works (a drawing, a text, a video, ...) to the teacher in USB&lt;br /&gt;
drives which is quite inefficient. With the Sugarizer Dashboard, the teacher can access all submitted&lt;br /&gt;
Journals directly from dashboard and would be able to launch each activity exactly as it was on&lt;br /&gt;
the learner’s device.&lt;br /&gt;
&lt;br /&gt;
2. To analyze usages on a deployment, it&amp;#039;s important to know which activities are used and how often&lt;br /&gt;
they are used. With the dashboard, the admin could view detailed statistics on activities usage and&lt;br /&gt;
adapt content to the field. Currently, it is being done by backing up each laptop individually but&lt;br /&gt;
it this process can be hugely automated through the dashboard.&lt;br /&gt;
&lt;br /&gt;
3. To supervise a deployment, admins need to know the exact memory and storage on devices and&lt;br /&gt;
on the server. With Sugarizer Server Dashboard, admins could retrieve stats on storage usage for&lt;br /&gt;
all devices and adapt the infrastructure accordingly.&lt;br /&gt;
We will try to explain this by the means of a flow chart. As we can see, there are three types of users:&lt;br /&gt;
Leaners, Teachers &amp;amp; Admin. The learners would work on different activities and store their data on XO&lt;br /&gt;
server. On the other hand, Learners would use the dashboard to access and view learner’s activities. &lt;br /&gt;
Admin would be interested every possible information. Sugarizer APIs would act as a data source for&lt;br /&gt;
the dashboard.&lt;br /&gt;
&lt;br /&gt;
The final Sugarizer Dashboard is expected to have the following features:&lt;br /&gt;
• Users: how many users has been registered on the server, how many users currently connected,&lt;br /&gt;
top users on the server, last user’s connection, create/edit/remove a user.&lt;br /&gt;
• Journal: how many Journals and how many entries in Journal on the server, last Journal, and last&lt;br /&gt;
entries, the size of Journals, top Journals, edit a journal (see/update/remove) entries.&lt;br /&gt;
• Application: how many applications are available on the server, change application visibility from&lt;br /&gt;
Client, update order and way to appear in the favorite view.&lt;br /&gt;
• Graphic and request: display graphics and report on previous data.&lt;br /&gt;
To implement the dashboard, we would be enhancing the existing Sugarizer Server API and would&lt;br /&gt;
also be integrating an authentication mechanism. For the same purpose, we need to four new fields&lt;br /&gt;
to the user’s route as mentioned below:&lt;br /&gt;
• Email: This would act as a medium for the user to receive their dashboard password and act&lt;br /&gt;
as the user ID while logging in the dashboard. Not required for Learners but would be a&lt;br /&gt;
required field for Admins and teachers.&lt;br /&gt;
• Type: This would be used to distinguish between the student, admin or learner. Role&lt;br /&gt;
segregation is defined as follows:&lt;br /&gt;
o Student: Can’t access the dashboard, will work on XO only.&lt;br /&gt;
o Teacher: Can access dashboard, but cannot access the general memory and storage&lt;br /&gt;
stats.&lt;br /&gt;
o Admin: Can access everything.&lt;br /&gt;
• Password: Encrypted Password of the user&lt;br /&gt;
• Timestamp: Last access timestamp of the dashboard. Valid only for admin &amp;amp; teachers.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;name&amp;quot;: &amp;quot;Lionel&amp;quot;,&lt;br /&gt;
 &amp;quot;color&amp;quot;: {&lt;br /&gt;
 &amp;quot;stroke&amp;quot;: &amp;quot;#A700FF&amp;quot;,&lt;br /&gt;
 &amp;quot;fill&amp;quot;: &amp;quot;#FF8F00&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;favorites&amp;quot;: [&lt;br /&gt;
 &amp;quot;org.olpcfrance.PaintActivity&amp;quot;,&lt;br /&gt;
 &amp;quot;org.olpcfrance.TamTamMicro&amp;quot;,&lt;br /&gt;
 …&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
 &amp;quot;private_journal&amp;quot;: &amp;quot;56b271d026068d62059565e4&amp;quot;,&lt;br /&gt;
 &amp;quot;shared_journal&amp;quot;: &amp;quot;536d30874326e55f2a22816f&amp;quot;,&lt;br /&gt;
 &amp;quot;_id&amp;quot;: &amp;quot;56b271d026068d62059565e5&amp;quot;,&lt;br /&gt;
 &amp;quot;email&amp;quot;: &amp;quot;john.doe@email.com&amp;quot;, /*[NEW FIELD]*/&lt;br /&gt;
 &amp;quot;type&amp;quot;: &amp;quot;student&amp;quot;, /*student or teacher or admin, [NEW FIELD] */&lt;br /&gt;
 &amp;quot;password&amp;quot;: &amp;quot;536dd30da874326e55f2a22816f&amp;quot;, /*encrypted [NEW FIELD]*/&lt;br /&gt;
 &amp;quot;timestamp&amp;quot;: 1423341066909 /* last access timestamp [NEW FIELD]*/&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, to store memory &amp;amp; storage stats, we need to create a log route in the API. Details are as follows:&lt;br /&gt;
• Memory: Memory used in KB.&lt;br /&gt;
• Storage: Storage used in KB.&lt;br /&gt;
• Device Type: Whether activity was launched on Web or Mobile device.&lt;br /&gt;
• User Id: To track down the user associated with this log.&lt;br /&gt;
• Activity ID: Identifier for an activity.&lt;br /&gt;
• Activity Name: just to give a quick idea about the activity. Though it can be removed as we&lt;br /&gt;
can retrieve this data from activity id.&lt;br /&gt;
• Launch Mode: From where the app was launched: Journal View | Home View | Neighbourhood&lt;br /&gt;
View&lt;br /&gt;
• Timestamp: Time when this log was generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;activity_id&amp;quot;: &amp;quot;caa97e48-d33c-470a-99e9-495ff02afe01&amp;quot;,&lt;br /&gt;
 &amp;quot;activity&amp;quot;: &amp;quot;org.sugarlabs.Markdown&amp;quot;,&lt;br /&gt;
 &amp;quot;user_id&amp;quot;: &amp;quot;56b271d026068d62059565e5&amp;quot;,&lt;br /&gt;
 &amp;quot;device_type&amp;quot;: &amp;quot;web | mobile&amp;quot;,&lt;br /&gt;
 &amp;quot;launch_mode&amp;quot;: &amp;quot;journal | home | neighbourhood&amp;quot;,&lt;br /&gt;
 &amp;quot;usage&amp;quot;:{&lt;br /&gt;
 &amp;quot;memory&amp;quot; : 64, /* in KB */&lt;br /&gt;
 &amp;quot;storage&amp;quot;: 128 /* in KB */&lt;br /&gt;
 },&lt;br /&gt;
 &amp;quot;timestamp&amp;quot;: 1423341066909&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To develop the dashboard, we would be using NodeJs as a server, Express for routing, &amp;amp; EJS as the&lt;br /&gt;
templating engine. Apart from these, JQuery, Highcharts.js, and SketchUI would also be used to&lt;br /&gt;
design and make an interactive user interface with lots of analytics related to the activities and users.&lt;br /&gt;
Most of the programming would in JS, HTML, and CSS. Following is a snapshot of the prototype which&lt;br /&gt;
I have developed using the above-mentioned technologies as proof of concept during the application&lt;br /&gt;
period.&lt;br /&gt;
&lt;br /&gt;
What is the timeline for development of your project? The Summer of Code work period is from midMay&lt;br /&gt;
to mid-August; tell us what you will be working on each week. (As the summer goes on, you and&lt;br /&gt;
your mentor will adjust your schedule, but it&amp;#039;s good to have a plan at the beginning so you have an&lt;br /&gt;
idea of where you&amp;#039;re headed.) Note that you should probably plan to have something &amp;quot;working and&lt;br /&gt;
90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think,&lt;br /&gt;
and we will consider cancelling projects which are not mostly working by then.&lt;br /&gt;
&lt;br /&gt;
==Week Task==&lt;br /&gt;
27 April-19 May Explore the technologies to be used in developing Sugarizer&lt;br /&gt;
Dashboard. Talk to the mentors to decide how to integrate the&lt;br /&gt;
existing API with the Dashboard and think about possible&lt;br /&gt;
changes to existing API so that they both work seamlessly.&lt;br /&gt;
&lt;br /&gt;
19 May – 25 May Begin coding for Sugarizer backend Dashboard and implement&lt;br /&gt;
changes that are required for the API.&lt;br /&gt;
&lt;br /&gt;
25 May – 2 June Complete the Basic framework for the Dashboard.&lt;br /&gt;
&lt;br /&gt;
2 June – 9 June Implement authentication and user module of API on the&lt;br /&gt;
Dashboard.&lt;br /&gt;
&lt;br /&gt;
9 June – 16 June Implement activities and journal Module and test the workflow.&lt;br /&gt;
&lt;br /&gt;
16 June – 23 June Implement main dashboard screen with all analytics required.&lt;br /&gt;
&lt;br /&gt;
23 June – 3 July Midterm Evaluation&lt;br /&gt;
&lt;br /&gt;
3 July – 31 July Complete the Remaining tasks and made modification from&lt;br /&gt;
regular feedback.&lt;br /&gt;
&lt;br /&gt;
31 July – 7 August Start the performance testing and enhancement and fix any&lt;br /&gt;
existing bugs.&lt;br /&gt;
&lt;br /&gt;
7 August – 14 August Buffer week&lt;br /&gt;
&lt;br /&gt;
14 August - 21 August Polish up the UI, and review the documentation.&lt;br /&gt;
&lt;br /&gt;
21 August – 28 August Final Evaluations&lt;br /&gt;
&lt;br /&gt;
Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the&lt;br /&gt;
timeline you have described. This is usually where people describe their past experiences,&lt;br /&gt;
credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or&lt;br /&gt;
other resources as relevant.&lt;br /&gt;
&lt;br /&gt;
I completed my Bachelor’s from Indian Institute of Technology - Delhi, India and am currently a&lt;br /&gt;
Master’s student at the University of Toronto in Toronto, ON, Canada. Being a part of such prestigious&lt;br /&gt;
institutes famous for their strong competitive environment, I have excellent skills to manage time and&lt;br /&gt;
deliver quality work within the prescribed deadline.&lt;br /&gt;
&lt;br /&gt;
Technology always fascinates me and gives me immense happiness when I see that just by writing few&lt;br /&gt;
of lines of code, we can make a great product and it can help a lot of people to become more active&lt;br /&gt;
in their day to day life. A simple example of this is a course project that I have worked in my 2nd&lt;br /&gt;
semester of Master’s program (https://github.com/tarunsinghal92/3d-modal-analysis) which is&lt;br /&gt;
basically a simulation tool to analyze an N story building under different types of the earthquake. This&lt;br /&gt;
program can certainly help civil engineers to simulate their design under earthquake and come up with&lt;br /&gt;
even better design strategies. Following is a screenshot of this project that describes the stress&lt;br /&gt;
distribution at a certain time step of an earthquake in 5 storey building.&lt;br /&gt;
Prior to my master’s, I was working with a Start-up named VMock (https://www.vmock.com), where we&lt;br /&gt;
were working on a product that can automatically scans a candidate’s resume and gives feedback&lt;br /&gt;
using natural language processing and machine learning on how to improve it. As it was a very early&lt;br /&gt;
stage company, all the deadlines were used to be very hard but we tried our best and were able to&lt;br /&gt;
meet almost all possible deadlines. This has taught me an important lesson of working in deadline&lt;br /&gt;
based competitive environment.&lt;br /&gt;
&lt;br /&gt;
Apart from these, I have also made a small prototype for Sugarizer dashboard and some of the&lt;br /&gt;
screenshots are as follows. It accessed using following link: http://35.167.50.63:8100/journals.&lt;br /&gt;
Dashboard screen was created using SketchUI and different analytics were shown on the front page&lt;br /&gt;
to give an overall idea of the activities usage (Dashboard not present in prototype). &lt;br /&gt;
Following is the screen for activities page and it is also available in the prototype.&lt;br /&gt;
This prototype demonstrates my skills and capabilities required to complete the project in a systematic&lt;br /&gt;
manner. The code for the prototype can be found on Github:&lt;br /&gt;
https://github.com/tarunsinghal92/sugarizer-backend&lt;br /&gt;
&lt;br /&gt;
==Me and the community==&lt;br /&gt;
If your project is successfully completed, what will its impact be on the Sugar Labs community? Give&lt;br /&gt;
3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be&lt;br /&gt;
answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs&lt;br /&gt;
GSoC mentor. Provide email contact information for non-GSoC mentors.&lt;br /&gt;
&lt;br /&gt;
;Tarun:&lt;br /&gt;
The project aims to create a &amp;quot;Sugarizer Server Dashboard&amp;quot; for teachers and deployment admin which&lt;br /&gt;
can be used to control and manage the work of learners and analyze all various activities on a Sugarizer&lt;br /&gt;
Server. Teachers won’t have to locally transfer journals from the learners’ device and would be able to&lt;br /&gt;
launch each activity exactly like it was on the learner’s device. This project would have great impact on&lt;br /&gt;
the teachers as they would be able to manage their workflow in a more automated way which would&lt;br /&gt;
also increase user engagement &amp;amp; product adoption by completing the loop which is missing right now.&lt;br /&gt;
For the sugar labs community, it would be a great as they could view all the statistics directly from the&lt;br /&gt;
dashboard and work on improving the system in a fact-based way using the information presented in&lt;br /&gt;
the dashboard.&lt;br /&gt;
&lt;br /&gt;
;Lionel Laske´:&lt;br /&gt;
Sugarizer has started this year its first deployment on the field. We learned that deploying a&lt;br /&gt;
pedagogical tool in a classroom can&amp;#039;t be efficient if not mix with teacher tools. The Sugarizer Server &lt;br /&gt;
Dashboard will allow teachers and deployment administrators to retrieve data and statistics and then&lt;br /&gt;
to optimize Sugarizer deployment. It&amp;#039;s a major item to favorise Sugarizer adoption in the classroom.&lt;br /&gt;
&lt;br /&gt;
;Michael Ohayon:&lt;br /&gt;
The Sugarizer Dashboard is a new project to monitor and take actions for Sugarizer deployments.&lt;br /&gt;
It will allow teachers to get feedback on the most used activities, read journal entries and manage&lt;br /&gt;
users. The deployment team will get usage statistics and administration functionalities. This project is&lt;br /&gt;
a major improvement for Sugarizer, it will allow to measure Sugarizer&amp;#039;s usage and take useful&lt;br /&gt;
decisions on future enhancements.&lt;br /&gt;
&lt;br /&gt;
What will you do if you get stuck on your project and your mentor isn&amp;#039;t around?&lt;br /&gt;
If I get stuck somewhere in the project, then the first strategy would be to get whatever help I can get&lt;br /&gt;
from Google, Stack overflow etc. This should cover most the technology related issues. But in case, I&lt;br /&gt;
got stuck in figuring out what should I do next then I would immediately contact my project mentors&lt;br /&gt;
and community and seek their help using IRC and mailing list.&lt;br /&gt;
&lt;br /&gt;
How do you propose you will be keeping the community informed of your progress and any&lt;br /&gt;
problems or questions you might have over the course of the project?&lt;br /&gt;
Initially, I was thinking of writing a separate blog, but generally, they got lost after few years. So, I am&lt;br /&gt;
planning to write an update blog on my project’s Github account so that it would be easy for me and&lt;br /&gt;
for my mentors to keep track of the project and these updates would always be there with the code&lt;br /&gt;
base so it would be easy to track even after a long time. Moreover, this would also help other&lt;br /&gt;
developers to add additional functionalities in future.&lt;br /&gt;
&lt;br /&gt;
Apart from that I would be regularly hosting all the changes on my private server so that it becomes&lt;br /&gt;
easy for the community to view and suggest possible feedback on it. For problems and questions, I&lt;br /&gt;
would contact my mentor and the community on IRC and mailing list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Miscellaneous==&lt;br /&gt;
We want to make sure that you can set up a development	environment before	the summer starts.	Please&lt;br /&gt;
do one of the following:&lt;br /&gt;
Send us a link to a screenshot of your Sugar development environment with the following modification:	when&lt;br /&gt;
you hover over the XO-person icon in the middle of Home view,	the drop-down text should have your email in&lt;br /&gt;
place of &amp;quot;logout&amp;quot;.&lt;br /&gt;
This modification was made by changing the Language(EN) corresponding to Shutdown variable in&lt;br /&gt;
the locale.ini file.&lt;br /&gt;
Describe a great learning experience you had as a child.&lt;br /&gt;
“Work hard and don’t worry about the outcome because if you have done enough then it is going to&lt;br /&gt;
be alright. Failure and Success are mere the outcomes, what matters, in the end, is the journey you&lt;br /&gt;
had for it. If there are instances, which makes you feel that something is wrong then it needs to change&lt;br /&gt;
and nobody else is going to come and do it for. It’s only you who could make it right.” I am not sure&lt;br /&gt;
whether this belief is an outcome my childhood or undergrad or job experience but it keeps me&lt;br /&gt;
motivated to do well in life.&lt;br /&gt;
Is there anything else we should have asked you or anything else that we should know that might make us like	&lt;br /&gt;
you	or	your	project	more?&lt;br /&gt;
A series of events, starting with a minor degree in Computer Science (CS) during Bachelor’s degree in&lt;br /&gt;
Civil Engineering (CE), publishing a research paper involving heavy computational component of&lt;br /&gt;
ABAQUS, two years of tech start-up experience in VMock has created a desire in me to work on&lt;br /&gt;
improving the lives of common people by integrating Computer Science (CS) and (CE). My Master’s&lt;br /&gt;
was purely an outcome of this decision. I believe that having a good understanding of both the fields&lt;br /&gt;
can help me to develop Civil engineering related open source projects. With Sugarizer dashboard&lt;br /&gt;
project, I can certainly understand better about contributing to the open source community.&lt;/div&gt;</summary>
		<author><name>Walter</name></author>
	</entry>
</feed>