Skip to content
This repository has been archived by the owner on Nov 8, 2018. It is now read-only.

GSoC All Final Reports

Janice Niemeir edited this page Feb 19, 2018 · 2 revisions

SJ Rajath 2017
Shreyans 2017
Ananta 2016
Shraddha 2016

SJ Rajath 2017

Overview

PC Prep Kit (Malaria web app) is a web application that was developed with the intention of spreading awareness and educating users about malaria through some fun user engaging activities.

Platform

This is a web based application and is thus accessible across all desktop platforms. We have also made it responsive to enable users to use the application on phones as well.

Future development

  • Implementing a leader board can give a sense of competition among users with the sole intention of making it more user engaging.
  • Increasing the number of activities and stages: Currently, we have 5 stages with 3 activities in each, this can be increased to a higher number.
  • Implementing difficulty levels for the activities: Currently, the difficulty level of all the activities is very basic, this can be taken a step further by having difficulty levels for all activities.
  • More testing.

Use

Anyone can use this application to gain knowledge about malaria but the primary target audience for this application are Peace corps volunteers. This application aims at helping Peace Corps volunteers who travel to malaria risk regions to gain and spread awareness about malaria with the goal to eliminate the threat of this deadly disease from all Malaria risk regions.

Accomplishments

PC PrepKit was a project that required development from scratch. The structure was made as modular as possible enabling plugging and removing components without causing any effects to the system as a whole. Here is a list of my accomplishments over the course of this GSoC 2017 program.

  • Sign in page (Google and Local authentication)
  • Forgot and reset password
  • Main Menu / Stage Selector
  • Introduction - Highlight Activity
  • Introduction - Picture puzzle Activity
  • Malaria 101 - Developing an animation to illustrate the transmission of malaria virus through mosquitoes
  • Malaria 101 - Drag and drop follow up activity to complete the malaria transmission life cycle based on the previous animated video
  • Malaria 101 - Odd one out quiz
  • Medications and Labels - Memory game Activity
  • Unlocked stage Activity
  • Added Material design theme
  • Added Multi Language Support
  • Separated errors with their associated error codes
  • REST APIs that aid in CRUD operations for the application
  • Email template support for registration verification and password reset
  • Testing

I take pride in the fact that I could quickly familiarise myself with the new technologies and keeping up with the proposed schedule. Also, the fact that this application as a whole has come out quite beautifully and the fact that it will be used by a lot of people gives me great pride.

Learn more

PC PrepKit Github Repository

Work links

Merged commits
Commit history

Demo video

Demo

Challenges

Throughout the summer there were a lot of challenges that I faced. Here is a list of some of the challenges that I faced.

  1. Working with new technologies : I consider this to be the biggest hurdle for me, Node JS and Angular were completely new technologies to me and I took it up as a challenge to quickly familiarise myself with the languages and the best practices to be followed while using it.
  2. There are no standard IDEs available for Angular so all linting errors had to be fixed manually.
  3. There were some instances of miscommunication as well. My team mate Shreyans and I had some miscommunication with developing some APIs, this caused us to develop redundant codes. We then decided to communicate more in order to avoid such issues. We were fortunate to encounter this at an early stage of development as we could learn from our mistakes and avoid such issues for other tasks.
  4. Making the application responsive was a little challenging as well and it put me behind schedule at a certain point.

Take-Aways

There are numerous take aways for me personally, I have learnt a lot from all my mentors and my team mate. Developing such a huge well developed project was an experience that will help me greatly in my professional career. I learnt about the importance of writing well written code and also all the best practices and conventions that have to be followed. I also learnt the importance of having scrum meetings which helped me keep up with my schedule. On the soft skills front, I learnt about the presentation skills that is required for a successful demo of a project.

What I would do differently if I get such an opportunity again would be to have an elaborate design plan that avoids any miscommunication issues.

Here is my advice for GSoC applicants for next summer, give more importance or pay more attention to the design and ensure that you communicate well enough to avoid any conflicts. If you are new to any technology, use the time before the coding period to get a complete hang of all the new technologies. Stay updated on any new technologies and best practices that have to followed. Try to follow the standards as much as possible.

Following conventions and writing clean code are some of the things that I will definitely apply at my workplace, I would have had to learn it the hard way otherwise.

Overall experience

Right from contributing to Systers to being accepted for GSoC 2017 to successfully completing this project, the experience I gained can be compared to no other. This will definitely help me in my professional career.

Posting updates and concerns on the slack channel and having weekly hangouts demo meeting with all mentors helped me understand all the requirements even more clearly. The mentors and admin were available to address all my concerns throughout the summer.

I handled the work life balance quite well, but at times when I was behind schedule, I made it a point to make the most of my free time to catch up. All risks were resolved immediately after encountering it, the mentors helped me to quickly sort it out.

I would like to thank each and every member of my team. I learnt leadership skills from Buddhiprabha, the co-ordinator and admin of this project. She was always available to address all my concerns, personal and technical.

Jennifer taught me the importance of writing well written code with all the best practices and conventions to be followed for developing an open source project.

Visitha helped me with almost everything ranging from developing good soft skills to documentation requirements to writing neat code. He was very encouraging throughout the entire period.I gained a lot of soft skills and technical knowledge from him.

Rhythm helped me overcome any hesitation in approaching mentors for any issue, be it small or large. She would set up a meeting and address all my concerns whenever I had any. She was very encouraging throughout the entire period. I gained a lot of soft skills and technical knowledge from her.

Shreyans was one of the best team mates I have worked with so far. He was always there to lend a helping hand and also suggest changes that worked well for both of us. He developed the structure in such a way that it eased the development process.

On the whole this was an everlasting experience for me. I would like to thank my team once again for all their contributions. I would do anything to work with this team again. I will definitely continue to contribute more to this project as well as other projects.

Shreyans 2017

Overview

PC Prep Kit is a web application aimed at helping the peace corps volunteers with awareness about Malaria and its prevention techniques. The application uses various interactive activities to make the process effective. The App focuses on causes, prevention and medication of Malaria.

Use

PC Prep kit helps spread awareness about Malaria. The Peace Corps Volunteers who travel to the countries effected with malaria can use the information proved in the application and learn about symptoms, medications and their side effects and preventive measure which help keep them safe.

Platform

PC PrepKit uses the following technologies

  • Node.js, Express framework (JavaScript)
  • Angular 4 (SCSS, TypeScript, HTML)
  • MySQL + Sequalize ORM
  • Mocha, Supertest, Should.js (Backend Testing)
  • Jasmine, Karma (Angular Testing)
  • ESLint and TSLint (Linting tools)

Work Left

Adding well researched, reliable content: Since the application contains information about medication and treatments, any wrong information could lead to undesirable results. Therefore adding content with the help of professionals or certified sources is an important part. The application is designed to make it very easy to change the content so this won't be a problem.

Adding Peace Corps Policy: The policy is yet to be added.

Adding logos/ Images: The application uses a lot of test images snipped from the android design document / Branding guides etc. The application's look and feel would significantly improve when the proper png images are added to it.

Future Work

  • Adding more languages
  • More testing
  • New Activities
  • Train the Doctor chat for various other features.

Accomplishments

PC PrepKit was a new project and I had to start working on it from scratch from creating a modular and scalable project structure, designing REST APIs and the database. The following are the features that I could complete.

  • Creating a base Project structure
  • Registration and Verification page
  • Header
  • Navbar
  • Footer/ Activity Indicator
  • Infokit
  • Introduction Page
  • Stage Completion Page
  • Peace Crops Policy Mailing Activity
  • Dos and Don'ts Activity
  • Match the Medicines Activity
  • Doctor Chat Activity
  • REST APIs for activites as required
  • Backend Testing
  • Adding Multi Language Support
  • Creating a Scalable SCSS structure
  • Making activities responsive

Links

Challenges

Throughout the project I had various challenges, some related with technology and some with communication.

Working with Node was a challenge in the beginning as I was unable to switch to the asynchronous mindset having never worked with an asynchronous technology.

I also had problems with making HTML 5 canvas responsive and had to spend a lot of time to do that manually.

There was a huge problem with linting tools when they didn't catch the errors they were supposed to and lot of the spacing and indentation part had to be done manually.

There were some communication challenges me and my team mate Rajat changed the APIs together and then nothing worked for a while, and once we created APIs which did almost similar work and it was redundant. So to solve this we started communicating more, informed everything which we were doing and talked about everywhere it might cause issues and this discussion often gave solutions to work in a better way.

Take-Aways

I had never worked on a project so large and so structured and my mentors and admin had great Ideas of how the application should be modular, scalable and have multi language support. I learned a lot from their experience and ideas.

For technical skills, I learned so many new technologies, learned about all the principles and applications should be based on and how to implement them. I improved my code a lot and realized that there is a lot more to improve. The code review and the feedback at the end of each phase helped me a lot.

I learned how to communicate effectively to ensure if we were on same track. After one or two challenges with communication everything was smooth throughout.

Next time, I would plan everything ahead, the structure and everything and I would pay a lot more attention to details. Talking to mentors and admins I loved how they could think so much from the users point of view and I would put efforts to practice that myself.

For next year applicants, come up with new creative Ideas, the thing which will be rewarded the most is your creativity and handwork and make use of the Community Bonding period wisely. Get all the things in place for you to being coding, even develop some mini projects using those technologies.

Overall Experience

I can call it one of the best experiences of my life, getting so much to learn and help from such talented community members is not something you get everyday. I learned a lot of technical / non technical stuff, made myself productive and had a great time.

Communication on slack channel group daily and hangouts group meeting for the demos, one on one meetings with mentors in case of any issues/ help, it worked out very well.

I feel lucky to have worked with Systers and the PC PrepKit team. I am thankful to the admin of my team Buddhiprabha, it was all simple, organized and very well structured under her watch. I am grateful to my mentors for the things I have learned from them. Rhythm, always offering help, checking if there were blockers, searched for solution and made things easier. Visitha's experience and Ideas about how things should be done helped me a lot to understand things. His constant suggestion to improve the application's modularity and reusability gave me a great experience of the standards in the software development. Jennifer who I gave lot of trouble with the silly code issues, but without her I would have missed out on a great learning experience which her feedback provided, I can't think of any other source where I could learn so much from. My team mate Rajat who was amazing at the work, always there to help, discuss and quickly change things to improve the application. May who was there right from the proposal submission period to constantly help, give feedback despite the different timezone. It is only because of their work and efforts which led to a great learning experience for me.

Ananta 2016

MENTOR : Ritesh Giri

Overview

Malaria web app has been developed for the Peace Corps Volunteers, It is a safety application which helps in sharing and awareness about malaria .It is the web based version. It has been made from scratch using PHP. There are levels of games that will be used for educative purposes and will help gain knowledge of the deadly disease.

Challenges

During the implementation of few modules there was a need to enable score count and implementation of levels on games on different platforms was challenging for me. I had to do a lot of research to find out web testing platforms such as Aptana.

Take-Aways

Before GSoC, I had no prior knowledge of planning of a project. GSoC gave me the opportunity to work completely on the project from drafting the proposal to writing the code to final code integration. This is my best Take-Away.

Overall Experience

It has been absolutely amazing. GSoC is the perfect stage to demonstrate ones capabilities and even get a real time experience and also to learn a lot many things. And, working with a great organization like 'Systers' made my journey wonderful.

Shraddha 2016

Mentor: Shwetambara Srivastava

Project Overview:

The project focused on setting up of automation testing framework that can be utilised for the Malaria Prevention Application. The generic nature of the framework allows to automate repetitive testing actions and leads to utilization of system time and manual effort more efficiently. The aim of the project was to have reusable and efficient automated test scripts for regression testing. The project is implemented in Java using Selenium WebDriver and Maven/Eclipse setup; it also supports log4j to have detailed log reports during testing. The testcases run as a Testng parametrization suite in the web browser and generate emailable reports.

Accomplishments:

  1. Developed a testing framework from scratch designed to work for web application.
  2. Implemented database testing in the framework.
  3. Implemented a project in Maven/ Eclipse setup.
  4. Logging feature using log4j.
  5. Page Object model framework using Selenium WebDriver.

Challenges:

Communication problems with development team and catching up with the proposed timelines.

Take-Aways:

I learnt many things while working on this project! First and most importantly, the skill to develop a testing automation framework for web application; improved my java concepts and the project learning in general. Apart from the technical aspects, I learnt the importance of proper communication in a professional environment and will implement in future!

Overall Experience:

This was my first GSOC and I got to learn a lot about the open source community! I enjoyed working with Systers and would love to continue working like I had thought before applying for GSOC.

Links:

Github Repository
Systers Page