GSoC 2017 Summary

GSoC
August 24, 2017

This summer, I worked with Cadasta as a part of Google Summer of Code 2017 program.

Background:
Currently users can register with email addresses on the Cadasta Platform. So this summer, I worked on providing registrations with phone number and allowing existing users to add phone number to their profile on the Cadasta Platform.

My work mainly included the following:
1. Providing registration with phone number.
2. Allowing user to change/remove their phone number from User profile.
3. Verify the phone number.
4. Allow user to login with their phone number.
5. Allow user to reset their password with phone number.
6. Provide a way to send SMS to the phone number.
7. Provide a way to allow users to manually verify their phone or email.

Cadasta Platform is mainly built with python and django and it has been structured as a small set of interacting django web apps such as: accounts, organizations, party, geography, spatial, etc. For my particular project, I worked on accounts.

Every phone number needs to be verified, and I used django-otp to implement this. django-otp makes it easy to generate a token and verify it. Every token needs to be sent to user’s phone, and we used Twilio services to send this SMS.

I initially started by creating a functional and technical specification document to get a better vision of the project that I was going to do, as suggested by my mentor. Here’s a link to that.

Here’s a list of all the PRs I worked on:
1. #1606 — VerificationDevice model and Removal of 48hr email verification period
2. #1662 — Registration with Phone number
3. #1698 — Add phone to User Profile
4. #1708 — Allow user to login with phone and add Resend Token Page
5. #1717 — Reset Password with Phone
6. #1719 — Twilio Integration and More update notification
7. #1732 — API Endpoint to verify phone number.
8. #32Allow data storage in request sessions

I usually work on a sub-branch that was created off the feature-branch. For example, additional-login-options is my feature branch, and I create sub-branches off it and work on those sub branches. When my work is completed, I create a PR to the feature-branch. Once the PR has been reviewed, it is merged into the feature-branch. I will create a main PR to the master branch, once all of my pending PRs have been merged into the feature-branch.

If required, I will continue to work on the changes as addressed to the PRs even after GSoC has ended.

Conclusion:
I’ve really enjoyed working with Cadasta. I’ve learned a lot in the past 7 months(since Feb — 2017). I now love things that initially intimidated me. I’ve had my ups and downs, but it was a good experience over all.