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

Gunpreet 2017
Yatna 2017
Medha 2016
Tahirih 2016

Gunpreet 2017

Project Overview:

The Mobile App Control Center (MACC) is a server-side platform for the Peace Corps mobile applications. The web application enables the Peace Corps HQ to handle data for Malaria and FirstAide applications via any web browser. It helps them to send or edit any information in the mobile applications through a set of APIs. Currently, the project is ready to be deployed (Will soon be deployed!) and is open for new issues. However, the email verification on registration is pending and tests for the project still need to be covered entirely. Nonetheless, manual testing has been done thoroughly and once deployed the Peace Corps volunteers can freely use it to help in the social cause. In future, I see MACC as being available to use for a wider majority of people who can rely on its generic view to aide their own applications control.

Accomplishments:

Initially, the web application had the basic build up for both the aforesaid applications and had been given a decent makeup to start with. The project was to be improved both in terms of UI and Code as well as enhanced in terms of features.

During the GSoC period, I accomplished the following tasks:

Upgrading the Django version:

One of the major tasks for the GSoC period involved the upgrade from Python 2.7 and Django 1.6 to Python 3.6 and Django 1.11.

Overall code improvement:

This was the second major task of GSoC that involved changing the entire code as per latest Python/Django norms and moving from function-based views to class-based views. It was completed in half of the allotted time.

Django allauth:

The subtask of code improvement included the integration of Django allauth app for user authentication and registration.

Uniform Header:

This task was to introduce a uniform header for the entire project instead of having individual headers for each app in the project.

UI changes (me and Yatna):

It was a collaborative task with both Yatna and I working together to improvise the UI involving minor changes.

Integrate Bootstrap and Improvise UI:

This was another challenging task, new to my knowledge, which involved the integration of proper bootstrap for the templates and major changes in UI that gave the project its current look.

Implementation of search, sort features for posts:

Additional features were added to search the various category posts by title and sort by title, date created, author, date updated for the different apps' posts and contacts.

Static folder outside infohub directory and Common templates folder:

The static folder was moved outside the infohub directory along with other apps and a common templates folder was introduced in the macc directory.

Modal to implement Delete confirmation:

Django modals were used to implement a delete confirmation popup for posts and contacts instead of rendering a new template on another page.

Implementing Revision History:

Added models for displaying Revision History for all the apps.

Add remember me on the login page:

This task was covered with the Django allauth integration.

Proper alignment of template files:

A small task to improve the readability of the template files.

Remove contact number as input field:

The contact field in the list view was displayed as an input field instead of a text field. This was fixed.

Allow all characters for Post description:

The restriction of symbols in post description was removed.

Adding Timestamp to posts:

Timestamps were additionally displayed on the list and view templates for posts and search results.

Some small UI changes for better appealing templates:

  • Change button radius
  • Remove time, only keep date only from list post
  • Add image link and link to the revision history
  • Remove "small-caps" from Signup/login page span.

Added favicon to the project:

The Peace Corps logo was added as the favicon for the entire project.

Inline comments:

Added inline comments to the code I had worked with and introduced into the project.

Functionality to change username:

The user can change his/her username since uniqueness is maintained on the basis of email registered.

Here are the links to the contributions I made to the project. These links include the contributions made before and during the GSoC period:

Commits Merged
Open Issues
Closed Issues
Django upgrade Documentation
GSoC Final Presentation
Demo

Challenges:

The most challenging thing was to keep up with the pace of work. Time runs by and one has to manage studies, work (exams, projects, meetings, etc.) and the internship together without letting down one's team in any situation. It requires one to resort to proper time scheduling and utilize time in whatever way one could. Coding challenges include learning bootstrap, working with Modals and upgrading the project as I was a novice to face these issues. However, I tried my best to come up with solutions and advance step by step to get the work done, no matter the time it takes. Communicating our progress and collaborating with the Automation Testing Team was another hurdle in the path that lead to some miscommunications that, however, were eventually resolved with frequent meetings and daily status reporting.

Take-Aways:

I have become way better in Python/Django. Besides, the guidance we receive at each step has always delighted me. Mentors and the admin have enhanced my team-work capability, have introduced me to the formal work environment at a job, thus, increasing my exposure to the industrial norms that would be really very helpful for my professional career. The way we follow formal communications act as a replica of an actual work situation that we might be facing in our future employments. Contributions made to the organization have added onto my experience and knowledge. Following an organized agenda has helped me grow and learn a lot. Moreover, my communications skills have been competitively enhanced. All thanks to my Admin, Angel Tian, and Mentors, Medha Chakravarthula and Beiyu Lin.

Overall Experience:

Systers community has really lead the path to encourage women candidates though not being bias towards men at all. The norms of Systers are amazing and I enjoy my work. The mentors are quite supportive, cooperative, understanding and always ready to help. They have always encouraged more of communication and interaction. The humbleness with which they motivate us has always boosted us to perform better day by day. Also, the career advice always ready to be available from the admin is very beneficial and fascinating. The Team Hangouts, Slack messaging, 1:1 Hangouts, Gmail status reporting - all worked well for our team. I feel like having a great team that has helped me grow and learn a lot during my journey in GSoC and explore more of me. I would, thus, love to continue contributing to open source, if not Systers.

Acknowledgements:

A huge gratitude to my Admin: Angel Tian, who has always been there to provide support for my future career and lead my way to lifetime opportunities and much more.

A special thanks to my Mentors: Medha Chakravarthula and Beiyu Lin, who have stood as a helping hand whenever we were stuck somewhere in the tasks, guided us throughout the project, reviewed our code and corrected us for the good.

Last but not least, I am grateful to my teammate, Yatna Verma, for his co-operation and team-work throughout the GSoC period.

Yatna 2017

Overview

Mobile Application Control Centre (MACC) is a Web Platform to manage data and content for Peace Corps Mobile apps and provide APIs for FirstAide and Malaria applications as well.

Benefits

  • Easily add/edit/delete/view content (posts, contacts, page display text) appearing on FirstAide and Malaria Apps.
  • Keep a track of changes made to content rendered.
  • Keeps a record of Users using mobile application

Platform

Django based web application

Future Scope

  • Extend the application to store details to FirstAide Mobile App Users.
  • Use the Malaria App User's data to keep track of user's medication habits and history, then, apply analytics to extract useful information from the data.
  • Add feature to create posts through available templates.

Target App Users-

Peace Corps Admins and authorised members will be using MACC to add/edit/delete/view content which is broadcasted to other applications.

Accomplishments

Major Features Added

  • UI Improvement - Using common UI elements, removing unwanted elements, integrating Bootstrap, fixing UI bugs , applying colour theme.
  • Added Social Media Login/Signup via Twitter and Google to SingUp without filling Signup form and Login without needing to remember username and password.
  • Extending Posts to allow including Images and Links - Users can now add images and hyperlinks along with 'Title' and 'Text Content' to posts.
  • Added missing footer pages - 1.Details 2.Help 3.Policy 4.About wth appropriate content and useful links.
  • Feature for Users to add and edit his/her profile picture in the 'User Profile' Section.
  • Sphinx integrated which automatically generates beautiful documentation for the project code. Any changes/additions/deletions in the code base is automatically reflected in documentation.
  • Malaria App User's details (Name, Email, Age, Gender , Medication Type) (rendered through an API) is automatically added/updated to MACC DB. Thus a record of users is maintained.
  • Created APIs to render content for FirstAide Web App. FirstAide web thus can change content of it's page without having to change anything in the code base.
  • Several other bug/small features/UI tweaks were also done.

Links

Merged PRs

Learn more

Project Link
Setup Project - Follow this Installation Guide
Contribute - Follow this Contribution Guide

Challenges

Technical Challenges Since, the code was being upgraded to Django 1.11and Python 3 from Django 1.7 to Python 2 by the other student working on MACC, so, it was a bit challenging for me to implement feature in Django 1.7 and Python 2 , so that they would work latter after upgradation too.

In the task where I had to create 21 categories of API for the FirstAide web team, it was a challenge to create a generic code which would render structurally different categories of API. however, It all worked well at the end, and was a good learning experience.

Communication

The entire team had communications everyday via emails and at least once in a week video conference, so communication was not an issue. Even when collaborating with FirstAide web team, we had a planned strategy for getting requirements, analysing them, implementing them and getting a thumbs up from the other team on the completed task.

Take Aways

Exposure

The best thing about this GSoC was the exposure and the opportunity to work with people from different culture and different experiences . We had a team of people from 3 different time zones (India, Canada, USA) and having different backgrounds ranging from a Tech industry expert to PhD student and freshly graduates to MS student. I got a lot to learn about different career options which I can opt for in future.

Soft Skills

During these 4 months I understood the importance of a healthy communication in work. I learned a lot about communication skills and learned how to make work easier by using other people's help.

Technical Skills

Python and Django was completely new to me before this GSoC. I experimented and learned both during the last 4 months. Now I am pretty much confident with both and have started using Python in other work areas too. I had a good knowledge about Open Source and Git from my last GSoC and in this GSoC I happened to strengthen it further.

Advise for next year applicants

  • Do not wait for the ideas lists to open and then start contributing. Setup projects as early as possible and start contributing regularly. It will increase the chances of your selection.
  • Apply for more than 1 project, to maximise your chances as competition is tough.
  • Once selected, keep communication channels open with your mentors and admins.

Overall Experiance

GSoC 17 was a great experience for me, even better from GSoC 16. I got to work with amazing people and learned skills which will be useful for my professional life.

Communication Mode

Daily e-mails and Hangout Video Calls worked best for me.

Gratitude

I am thankful to my entire Systers team and especially MACC team for making GSoC 17 a memorable experience for me.

Special thanks to - Angel - For being there for us all the time and taking care of us. For the useful career tips and for all those sneek-peeks into the industrial world and for introducing us to all those technical terms. Medha - For planning things brilliantly , scheduling all those meetings and providing useful technical opinion on tasks. Beiyu - For daily motivating us on our daily reports, which was always nice to see. For sharing your technical experiences and providing valuable career guidance. Gunpreet - For being always available for help and sharing work, making things easy for me.

Medha 2016

Project Overview - Mobile App Control Center

The Mobile App Control Center (MACC) acts as a server-side platform for the Peace Corps mobile applications. The project was first started in 2014, to implement an infoHub from Malaria applications to MACC. The project enables the Peace Corps from the Headquaters to send information through mobile applications My mentors were Neetu Jain, Angel Tian, and Irish Medina. This is the list of all my commits in the past 4 months here.

Project Goals and Accomplishments

According to my proposal, I had the following goals to accomplish -

  1. Remove PeaceTrack application from MACC
  • The task was to get rid of Peace Track application from the server since the mobile applications are not running now, and has been accomplished.
  1. Add PCSA application to MACC
  • The task was to entirely integrate PCSA applications with MACC by making the app dynamic.
  • I have implemented this feature for 3 categories out of 6 in the PCSA application. Now Peace Corps headquarters can add, edit, or delete posts to be shown in PCSA.
  • Unit testing of the API is done, but integration testing has to be done.
  • Since the requirements were confirmed a little later in time, it was hard to finish the entire task.
  • Added API documentation, PCSA-MACC integration documentation.

A few additional contributions of mine included -

  1. Add Login functionality in Malaria applications
  • The patients details signing up on the malaria application are stored on the MACC database, in order to have one database for applications on different platforms (Android and iOS).
  1. Fix issues from last year
  • Made the application more modular by adding new Django apps for specific functionalities like profile, signup
  • Changed the Peace Corps logo with the new logo

Challenges

The main challenge for my project was to get proper requirements from the Peace Corps, at which I partly failed, but backed up in the end. Other challenges include learning Django, rest framework, bootstrap and a little Python, which were very new to me 5 months ago.

Take - Aways

There are many things that I'd take away from GSoC with Systers this year. This program has shaped my life differently. I could never imagine myself working on weekly goals and attending meetings with mentors and giving them updates on a weekly basis. I was very lucky to have 3 very helpful mentors who were always there for me whenever I asked for helpn so I will take away from them the mentor-ship qualities. I am also taking away with me all my knowledge on web app development with me. I will continue to contribute to OpenSource and hopefully will be selected for GSoC next year as well!

Overall Experience

Being a mobile app developer myself, this project had all the new technologies that I got to learn as a part of GSoC. It was very interesting to be working on a real time project and I tried my best to accomplish all my goals. My mentors were very friendly and helpful throughout, and I couldn't be more thankful to be their mentee. GSoC has opened up a different perspective of mine toward Open Source, by which I have decided to be contributing to FOSS for as long as possible. I also have improved my skills in communication, as my project required me to keep in touch with all other PC mobile app developers and mentors.

Tahirih 2016

Introduction

Automated testing is an extremely useful bug-killing tool for the modern Web developer. My task was to extend the already existing collection of tests – test suite – for the Mobile App Control Center(MACC).

Mobile App Control Center(MACC):

It is a web application that manages data of some Peace Corp mobile applications. In addition to managing mobile app data, the mobile app control center is where HQ can upload important information and transmit to mobile applications. Particularly for emergency information that needs to get to Volunteers that do not always have Internet connectivity

Goals:

The project was aimed at extending the automated test suite for the MACC which is one of the many projects undertaken by Systers, an Anita Borg Institute Community. The objective of this project is to create, maintain, and execute automated tests for thesame. The project's main goal is to have reusable and automated scripts for regression testing

Tools and Technologies:

Language: Java
Selenium (Junit Test, Testng Framework)
Firebug
Jmeter
Jenkins
IDE: Eclipse
Version Control: Github
Web Browser: Firefox, chrome, safari and Internet Explorer
O.S: Ubuntu 15.10

Deliverables

  1. Extended Test Automation Framework with PageObject. The old code-base still had some structural implementation not separated from its functional implementation. Refactoring these parts of the code now gives the entire project a POM feel.
  2. Cover all Test Cases for PeaceTrack(PSCA) app. MACC has two parts, Malaria Prevention app and the Peace Track App. I covered all the possible test cases PSCA app which included test cases for adding post, viewing post, deleting posts, and editing post. Form validations were also covered including links and image verifications.
  3. Extended Test Case on Malaria app. Some work had already been done by the previous year GSoC student. I simple did some code refining and extended a few test classes.
  4. Added Cross-Browser Compatibility for Firefox, Chrome, Safari, Internet Explorer browsers and Multi-Threading. Initially the test framework supported only firefox browser. To that effect I extended the test framework to run on Firefox, Chrome, Safari, Internet Explorer browsers.
  5. Implemented Parallel testing. With the use of Selenium Grid I was able to run the same test case on multiple browsers at the same time.
  6. Run Load and Performance on Mobile App Control Centre using Jmeter.
  7. Started continuous Integration and deployment with Jenkins

Future Work

Security Test to identify potential vulnerabilities.
Usability Testing on Mobile App Control Centre
Continue work on continuous Integration and deployment

Clone this wiki locally