User:Shanepelletier/GSoC Proposal

=ProposalTemplate =

Fix bugs in BoneScript, add additional features if time allows.

Student: Mentors: Jason Kridner Code: https://github.com/beagleboard/bonescript/ Wiki: http://elinux.org/User:Shanepelletier/GSoC_Proposal GSoC: GSoC entry

=Status= This project is currently just a proposal.

=Proposal=

About you
IRC: shanepelletier Github: https://github.com/shanepelletier/ School: University of New Brunswick, Fredericton Country: Canada Primary language: English Typical work hours: 8AM-5PM GMT-3 Previous GSoC participation: None. I wish to participate to expand my knowledge of using hardware platforms to create innovative product designs and to make hardware programming more accessible to everyone.

About your project
Project name: Fix Bugs in BoneScript

Description
I will be improving BoneScript by first fixing all of the current issues that have been raised on GitHub, and then moving on to implementing new features should time permit. New features for BoneScript will be decided upon in collaboration with my menton, who is currently in charge of BoneScript, and by asking the BeagleBone community which features they would like. BoneScript is particularly helpful for those new to hardware programming, and so my proposal would have the biggest impact on people who have just purchased a BeagleBone and wish to get started with hardware development as quickly as possible. I wish to improve BoneScript for two reasons. The first reason is that I believe by lowering the bar of entry to the world of hardware programming, more people will get exposed to it, and therefore there will be more people creating new and innovative hardware projects that can have a huge impact on the world (e.g. improved prosthetic limbs, cheaper telecommunication devices for the developing world, etc.). The second reason is that I believe BoneScript is at just the right level of hardware interaction that I, as someone who has never really dealt with the hardware side of computing, feel that I will be able to learn a lot about working with hardware without my relative lack of knowledge affecting my contributions too harshly. The vast majority of my time will be spent writing Javascript code, although a small minority of my time may be spent programming in C or ASM if a bug exists in another project that BoneScript relies on and my mentor and I agree that it's worth my time to try to fix that bug rather than simply submit an issue to the project and wait for the developers of that project to fix the bug.

Timeline
2017-06-06: Fix one bug in BoneScript 2017-06-13: Fix 1/10 of the bugs in BoneScript 2017-06-20: Fix 2/10 of the bugs in BoneScript 2017-06-27: Fix 3/10 of the bugs in BoneScript 2017-07-04: Fix 4/10 of the bugs in BoneScript 2017-07-11: Fix 5/10 of the bugs in BoneScript 2017-07-18: Fix 6/10 of the bugs in BoneScript 2017-07-25: Fix 7/10 of the bugs in BoneScript 2017-08-01: Fix 8/10 of the bugs in BoneScript 2017-08-08: Fix 9/10 of the bugs in BoneScript 2017-08-15: Fix the remaining bugs in BoneScript

Experience and approach
I have a lot of experience writing Javascript; last summer, I worked as a Full Stack Web Developer writing Javascript for my job and I implemented a majority of the functionality of the application. I also have experience writing C++ and C, as showcased by the computer game I wrote when I was twelve which is programmed in C++ using the SFML library. I believe that the timeline I have set out is reasonable, as the majority of issues on GitHub for BoneScript appear to have simple solutions that should take no more than a few hours each to implement. I also believe that setting a goal for the first week to fix one of the bugs is reasonable, as I will be spending the majority of the first week getting acquainted with the BeagleBone and the BoneScript code. I consider success in this project to be closing all of the existing issues on GitHub as of the time of starting the project, with any additional improvements to BoneScript being a bonus.

Contingency
Since this project is written in Javascript and the vast majority of programmers know Javascript, I will be able to call on other members of the BeagleBone community for help should my mentor be otherwise occupied. Also, I will take advantage of resources such as Stack Overflow to ask questions if I'm not sure how to implement something.

Benefit
Fixing the bugs in BoneScript will improve the development experience for newcomers to the community, thus expanding the community and eventually providing more members capable of both improving the BeagleBoard ecosystem and improving humanity through the projects that they build. Also, the members of the community who have raised the issues on GitHub will benefit immediately and directly by having a problem that they discovered fixed so they can move on with whatever they were making when they first discovered the issue.