(8 intermediate revisions by the same user not shown)
Line 7: Line 7:
:'''Sugar Labs wiki username:''' Rishabhnambia
:'''Sugar Labs wiki username:''' Rishabhnambia
:'''IRC nickname:''' rishabhnambiar
:'''IRC nickname:''' rishabhnambiar
:'''Github:''' https://github.com/rishabhnambiar
:'''Languages:''' English
:'''Languages:''' English
:'''Where am I located? and what hours(UTC) do I tend to work?'''
:'''Where am I located? and what hours(UTC) do I tend to work?'''
Line 14: Line 15:
:'''Past experiences with Open-Source projects:'''
:'''Past experiences with Open-Source projects:'''


: I have worked with an open-source organization called [https://github.com/frappe ERPNext] sporadically between 2016 and 2017.
: I have worked with an open-source organization called [https://github.com/frappe ERPNext] sporadically between 2016 and 2017 as a part of their Developer Operations team.
   
   
::* I added an AWS S3 Integration to Frappe, a Python framework that powers ERPNext.
::* I added an AWS S3 Integration to Frappe, a Python framework that powers ERPNext.
Line 21: Line 22:
::* https://github.com/frappe/bench/pull/473/
::* https://github.com/frappe/bench/pull/473/
: I've been making minor contributions since May 2016.
: I've been making minor contributions since May 2016.
::*https://github.com/frappe/bench/pull/473 [Ansible]
::*https://github.com/coding-blocks/content-downloader/pull/7 [Python]
::*https://github.com/fossasia/meilix-generator/pull/110 [HTML, CSS, JavaScript]


=Project Description =
=Project Description =
Line 50: Line 55:
:
:
[[File:Herokubuttonreadmeexample.png|center]]
[[File:Herokubuttonreadmeexample.png|center]]
:
:::::::::::::::::::''<small>Fig. mockup for a Heroku Button in README.md</small>''
:The second goal is to simplify the way to deploy Sugarizer in the cloud. The priority in this section is get a [https://blog.heroku.com/heroku-button Heroku Button] for sugarizer up and running.
:The second goal is to simplify the way to deploy Sugarizer in the cloud. The priority in this section is get a [https://blog.heroku.com/heroku-button Heroku Button] for sugarizer up and running.
:
:
Line 64: Line 69:


:If things go as per the timeline till the 2nd evaluation phase, I will also be making a Bash + Docker script for sugarizer deployment. Ansible, Terraform or Packer can be added to the script to allow compatibility for different VPS providers. As the Docker build for Sugarizer-server and Ansible installer for IIAB already exist, this will not take long.
:If things go as per the timeline till the 2nd evaluation phase, I will also be making a Bash + Docker script for sugarizer deployment. Ansible, Terraform or Packer can be added to the script to allow compatibility for different VPS providers. As the Docker build for Sugarizer-server and Ansible installer for IIAB already exist, this will not take long.


=Timeline=
=Timeline=
Line 79: Line 83:
*Set up a blog for posting my weekly progress.  
*Set up a blog for posting my weekly progress.  
*Discuss and reshape the Timeline after discussion with my mentor(s).
*Discuss and reshape the Timeline after discussion with my mentor(s).
*Investigate the causes of MongoDB crashes faced by Sugarizer users and formulate a solution.
|-
|-
|
|
Line 110: Line 115:
*Improve the [https://github.com/iiab/iiab/tree/master/roles/sugarizer Ansible playbook] for installing Sugarizer on the Internet-In-A-Box installer.  
*Improve the [https://github.com/iiab/iiab/tree/master/roles/sugarizer Ansible playbook] for installing Sugarizer on the Internet-In-A-Box installer.  
*This will include making sure that the IIAB play uses the latest version of sugarizer with all available functionality and ensuring that it works.  
*This will include making sure that the IIAB play uses the latest version of sugarizer with all available functionality and ensuring that it works.  
*On the IIAB Sugarizer install, add safeguards and checks to reduce MongoDB corruption issues caused by incorrect shutdown methods.
|-
|-
|04
|04
Line 116: Line 120:
|
|
|
|
*On the IIAB Sugarizer install, add safeguards and checks to reduce MongoDB corruption issues caused by incorrect shutdown methods.
*Study how to make the Sugarizer School Box communicate with the Android and iOS apps.
*Study how to make the Sugarizer School Box communicate with the Android and iOS apps.
*Implement and test on multiple Android devices/tablets.
*Implement and test on multiple Android devices/tablets.
Line 121: Line 126:
|05
|05
|June 12 - June 20
|June 12 - June 20
|
|Phase I Evaluation
|
|
*Formulate a robust upgrade process to ensure that Sugarizer updates are installed successfully without losing any data to instances that have been deployed.
*Formulate a robust upgrade process to ensure that Sugarizer updates are installed successfully without losing any data to instances that have been deployed.
Line 129: Line 134:
|06
|06
|June 21 - June 29  
|June 21 - June 29  
|Midterm Evaluation
|
|
|
*Generate a Heroku Button for one-click Sugarizer-server deployment.  
*Generate a Heroku Button for one-click Sugarizer-server deployment.  
*The project should ideally be 90% complete by the midterm evaluation phase.  
*The project should ideally be 90% complete by the end of June.  
*So my goal at this stage is to have a functional Raspberry Pi image build for Sugarizer, significantly improved IIAB Ansible install script and the Heroku Button.  
*So my goal at this stage is to have a functional Raspberry Pi image build for Sugarizer, significantly improved IIAB Ansible install script and the Heroku Button.  
|-
|-
Line 140: Line 145:
|
|
*Test Heroku Button deployment.
*Test Heroku Button deployment.
*Test the Sugarizer School Box Raspberry Pi image at real '''Sugarizer deployments''' with the help of the community.
*Test the Sugarizer School Box Raspberry Pi image at real Sugarizer deployments with the help of the community.
|-
|-
|08
|08
|July 09 - July 13
|July 09 - July 13
|
|Phase II Evaluation
|
|
*If the Turtle/Music Blocks release is on schedule, I will add it to the Sugarizer Pi Image build.
*If the Turtle/Music Blocks release is on schedule, I will add it to the Sugarizer Pi Image build.
Line 173: Line 178:
|12
|12
|6 Aug - August 14
|6 Aug - August 14
|
|Final Evaluation
|
|
*Keep a final buffer week for added tasks.
*Keep a final buffer week for added tasks.
Line 183: Line 188:
|
|
|-
|-
|
|August 06 - August 14
|Final Evaluations
|
|}
|}


Line 192: Line 193:


:I believe I can complete this project because of my love and fascination for Linux and my previous work experience with Ansible, Docker and Python.
:I believe I can complete this project because of my love and fascination for Linux and my previous work experience with Ansible, Docker and Python.
:This is the first time I’m applying for GSoC and Sugar Labs is the only organization I’m applying to because this project is a really good fit for my skill-set.


:*I mentioned my experience with an open-source organization called [https://github.com/frappe ERPNext] above.   
:*I mentioned my experience with an open-source organization called [https://github.com/frappe ERPNext] above.   
Line 201: Line 201:


:*In the summer of 2017, I was at [https://angel.co/cube-consumer-services-1 Cube] as a  Full-Stack Development Intern. Over the summer, I built a Python based (bottle.py) web application that automated a lot of maintenance tasks for the Operations team that included web scraping and API Development. I also containerized the application using Docker and Docker-Compose.
:*In the summer of 2017, I was at [https://angel.co/cube-consumer-services-1 Cube] as a  Full-Stack Development Intern. Over the summer, I built a Python based (bottle.py) web application that automated a lot of maintenance tasks for the Operations team that included web scraping and API Development. I also containerized the application using Docker and Docker-Compose.
:This is the first time I’m applying for GSoC and Sugar Labs is the only organization I’m applying to because this project is a really good fit for my skill-set.


= The Project and the Community =
= The Project and the Community =
Line 221: Line 223:
::4) I think you can start thinking on your proposal. You can continue to discuss with us to talk about the project but also the community and the impact of that project.
::4) I think you can start thinking on your proposal. You can continue to discuss with us to talk about the project but also the community and the impact of that project.
::5) For the deployment part we have two options that would be nice to have.
::5) For the deployment part we have two options that would be nice to have.
::* a really simple automation like heroku single click deploy (https://blog.heroku.com/heroku-button). This is the killer feature we should definitely have.
::* a really simple automation like heroku single click deploy (https://blog.heroku.com/heroku-button).  
:::'''This is the killer feature we should definitely have.'''
::* the devops way using tools like Ansible and Terraform and Packer.
::* the devops way using tools like Ansible and Terraform and Packer.
::'''One major thing for all platforms is to think about the upgrade processes, how can we update the devices/server without losing data.'''
::'''One major thing for all platforms is to think about the upgrade processes, how can we update the devices/server without losing data.'''
Line 249: Line 252:
:I've deployed Sugarizer on my Raspberry Pi 3 and a VPS with Docker and without it.
:I've deployed Sugarizer on my Raspberry Pi 3 and a VPS with Docker and without it.
:It works really well and I haven’t run into any major issues.
:It works really well and I haven’t run into any major issues.
====Tell us something about yourself that will make us like you more.====
:*I believe I’m a good candidate for this project because I’m an avid distro-hopper. The process of merely installing new Linux distributions and setting them up the way I like takes a large chunk of my time. So, the Sugarizer School Box isn’t just some project I’d like to do for GSoC, it’s something I’ll actually enjoy building!
:*I come from a family of musicians so I’ve turned into an amateur singer and guitar player as I’ve grown up. I also know my way around recording instruments and vocals. If the Sugarizer School Box project didn’t exist, I would have picked a Music Blocks project for sure. Maybe I can work on it sometime in the future!


====Describe a great learning experience you had as a child.====
====Describe a great learning experience you had as a child.====
Line 258: Line 265:
:Now, I just use that concept to try learning whatever I need to. It’s all about getting your hands dirty and putting in the work.
:Now, I just use that concept to try learning whatever I need to. It’s all about getting your hands dirty and putting in the work.


====More questions I'd like to ask====


:*I've taken a lot of freedom in making the timeline and I'm not sure if I've given enough time to the important things.
 
:*If something I've given time to isn't very important then we could replace that something else.
:*Would you like to see even more implementation details? (I've added some in the Timeline).
:*I'd love to receive any feedback from the community!




[[Category:2018 GSoC applications]]
[[Category:2018 GSoC applications]]