(5 intermediate revisions by the same user not shown)
Line 55: 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 69: 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 84: 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 115: 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 121: 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 126: 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 134: 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 145: 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 178: 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 188: Line 188:
|
|
|-
|-
|
|August 06 - August 14
|Final Evaluations
|
|}
|}


Line 197: 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 206: 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 226: 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 254: 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 263: 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.


====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!






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