Public Lab Research note

RGSoC: v2 API development

by milaaraujo with stefannibrasil |

Read more:

About us

Names: Camila Araújo and Stefanni Brasil

Location: Vancouver, Canada

We are the Rails Girls Summer of Code team Brazilian housewives coding:

Github: and

We are Brazilians and we are housewives who love to coding.

Project description

Abstract/summary (<20 words):

Work on the release of the v2 of Public Lab API to support the new Swagger interface, covered with tests and documentation. Also add the documentation to the new token system.


The Public Lab API is extensive and there are some endpoints who need to be updated to the Swagger interface. Also, it does not have a full documentation and tests coverage. We aim to work on that to prevent bugs in the future and to make it easier to retrieve data to be used on the stats page.


We are planning on doing weekly small releases, following the modularity methodology. All steps below includes writing tests and docs while we work on the week task:

Week Days Tasks
1-2 2/Jun-15/Jun Study Grape Entities and Swagger code and docs
3 16/Jun-22/Jun Refactor SearchService and Search endpoints
4 23/Jun-29/Jun Import Author endpoint to Swagger interface
5 30/Jun-6/Jul Import Tagged notes to Swagger interface
6 7/Jul-13/Jul Test moved endpoints on Swagger interface
7 14/Jul-20/Jul Review token feature
8 21/Jul-27/Jul Write documentation for the new token feature (
9 28/Jul-3/Aug Start writing integration tests for the new features
10 4/Aug-10/Aug Ensure multiple format access: JSON, RSS, etc., for legacy endpoints that have these formats
11 11/Aug-17/Aug Write unit tests for the back-end to various APIs by writing Services like TypeAheadService
12 18/Aug-24/Aug Ensure that v2 of Public Lab is fully working and solve possible bugs
13 25/Aug-31/Aug Finish our contribution by reviewing the docs and help planning the next steps for future contributors


Documentation, literature, sample data, mentors and coaches.

First-time contribution

We have already done some contributions to Public Lab:

And we intend to work on more complicated Issues together before July to get more familiar with Public Lab docs and code guides.


We have some experience using Python, Java, C and academic research.

Camila: I finished my Computer Science Master's degree last year. I've been working with academic research since my first year as a undergrad student. I have learned to program using C. After that, in most of the courses I attended at university I used C or C++. Also at the beginning of my graduation I worked for a short period as a PHP Web Developer. Then I was in different research projects and for each of them I had to learn a different language/technology. For example Python, Django, Perl, Matlab and R. I'm a beginner in the open-source world, so my first contribution was to the Public Lab project. Here in Canada I have signed up to be a mentor on the Ladies Learning Code program.

Stefanni: Me, Stefanni, have experience with Ruby on Rails, Docker, Kubernetes, Agile and Continuous Integration, Pair Programming and Code Review. I have a blog and there I share my learning path. On my Github, I also started a Ruby Farm project and a tutorial following Agile Web Development with Rails - 4th edition. I also did a Game using PyGame and Arduino for children to learn basic mathematics concepts.

I also was a Coach on Rails Girls Sao Paulo 2017. I talked on RubyConf Sao Paulo 2017 about being a beginner in code and giving tips for those who want to change their careers to tech.


Camila: As a researcher I worked on different projects, with different teams and also on my own, with the guidance of a teacher. In my first projects I worked directly with a PhD student and performed simpler implementation tasks with other undergraduate students. Over time, I gained autonomy until I was able to work on my own projects alone. I think when you work alone in your own project it is very important to be self-motivated and self-sufficient because anybody will get your project off the ground for you.

Stefanni: I did an internship in a fintech and working with a team of 13 remote developers was a great experience. I have great communication skills, so working in a team is something that I like. Sharing tips and helping others is something that I enjoy.


Camila: First, as a a beginner in the open-source world, I really like Public Lab project because its concern on being beginner-friendly. One thing I am passionate about is understanding how sociological aspects are reflected in current technologies. In my master's degree thesis I demonstrated the existence of racial bias/stereotypes in search engines, and what is the role of the algorithms on the propagation of these bias/stereotypes. I chose this topic because I believe it is something that impacts society in some way. Just as I believe that investigating environmental concerns, as Public Lab does, is something that can positively impact society and help the environment.

Stefanni: Yes, we are interested in Public Lab mission because we believe that providing resources for researchers can improve Education. I changed my career to Software because I wanted to help other people and helping a project like Public Lab is a great opportunity to do that. Also, DIY science rocks!


Everyone who wants to share knowledge


We'll meet everyday to work together. We are applying for the 40h per week internship, so we are excited for coding this summer! We plan to use Trello to break the tasks into smaller tasks and share them with our mentors and coaches.

software gsoc soc gsoc-2018 soc-2018 rgsoc-2018 soc-2018-proposals soc-2018-api

response:13975 with:stefannibrasil


Hello @warren We were able to create this proposal for the Rails Girls Summer of Code after looking into the existing API and the docs on the repository. We would love to have some feedback, so we can improve our proposal. Thanks!

Oh, great! I had hoped to review proposals today but I think i may have to on Monday or Tuesday. But please take some time to look at others' proposals and leave comments -- thank you!

No problem, take your time! We will, thanks :)

Hi! Do you think you could flesh out (in smaller pieces) exactly what you'd be working on in a checklist of sorts? You could copy in stuff from the relevant Github issues, and link to them -- that'd be really helpful!



Is this a question? Click here to post it to the Questions page.

Hi, @warren!

We tried to be as thorough as possible, but we may be missing something. Let us know if there is any other endpoint or feature missing. ;)

Hi, this is super. Sorry for responding slowly but your timeline is really great. One suggestion:

Start writing integration tests for the new features

You could also potentially write unit tests for the back-end to various APIs by writing Services, like these:

Unit testing is less computationally "expensive" and more targeted, but with, not /instead/ of, fuller testing like integration or functional. And these services can be used throughout the application.

I've made a new tag for API-related proposals: #soc-2018-api as @Raounak @rishabh07 @sukhbir have all submitted API-related proposals as well. Awesome, thanks all!

If you're interested you can try coordinating with the other proposers; it's possible we'd do multiple API projects, so let's think collaboratively! If projects are broken up in to self-contained parts well enough, two or more people could in theory tackle this together, although there is also an option to reorganize proposals after they're accepted to reduce redundancy.

Thanks a lot!

I also think some other tasks to consider might be:


@warren has marked stefannibrasil as a co-author.

Thanks @warren ! I made some changes to the timeline proposed. I am gonna try to articulate a collaboration to work on the API.

You must be logged in to comment.