Name: Lalith Rallabhandi
Public Lab is an open community which collaboratively develops accessible, open source, Do-It-Yourself technologies for investigating local environmental health and justice issues.
Public Lab chatroom
Reset your password
Read more: publiclab.org/n/12879
Name: Lalith Rallabhandi
Affiliation (school/degree): BE in Computer Science at Chaitanya Bharathi Institute of Technology - Osmania University
Location (where you are): Hyderabad, India
Project: Publiclab.org - plots2 repository
Project title: Rich Profile tags and improving the performance of Publiclab.org
Implementation of various tags in profile page which improves community interaction in PublicLab.org organization and also improving the response time of profile page.
Profile tags are a creative tool that lets PublicLab.org users add tags to their profile which highlights the things that describe them. Main focus of this project is to add various profile tags such as location data, role, tools, skills to user profiles which improves user base community side interaction. Improving the current Barnstar implementation by providing a new layout in profile page. In the current system, comments are displayed with image icon and description which will be refactored based on the role user possess such as admin, moderator, organizer. On the other hand as huge amount of data is rendered in the front end of the application, response time is another important factor project will focus on.
I will be using agile software development method which includes iterative and incremental approach. Initial development starts by creating a table and model for profile_tags and writing their unit tests. This would setup the database for interacting with any controller. Next step would make architectural decision for layout in the profile page and adding necessary forms and routes. Major focus will be on implementing geolocation tags with autocomplete input. Performance of the location tags can be improved by adding a view level cache fragment for the input form. User permissions is another major privacy concern when tags are implemented. Tags should only be modified by user who created it or by admin itself. Edge cases will be taken care of during implementation. Adding tests for the same will help future developers to test any new functionality without affecting previous code. In new comment system, user comments are marked with their role which will help end users to trust the official comment from organizer or admin.
I will use Agile Development Methodology for this project. Given below is a rough timeline for my project, subject to change by mentor intervention:
Mid term evaluation are done and 27 June is the last deadline.
Note: If the proposal goes faster than expected, I will look into autocompletion for tagging in plots2.
What resources will you need: people, documentation, literature, sample data, hardware if applicable:
Major changes (Implementing various tags) to profile page are done with this project which will have significant impact on PublicLab.org users through interaction, efficient response time and also improving community user base. New comment system with their role name will help user to know trusted comment from admin, organizer. Sample data is needed which will be done through faker gem, seed.rb file. I will need guidance and feedback from mentor, members of PublicLab.org in improving the idea implementation. Some documentation is already provided with Idea such as MapKnitter sample code, User map view and Durpal_node tag functionalities. This is good to enough to start with the project.
Have you forked the relevant codebases? Installed them in a dev environment such as Cloud9.io? Need help doing so? Please provide a link to each of the above.
I forked plots2 repository and every day pull the new changes and update my local master branch. I could easily setup development environment locally in my machine. All the tests are passing. Additionally I use phpMyAdmin for effectively working on Mysql tables.
Describe your technical background; what languages you use, what projects you've contributed to before, links to GitHub or other code repositories or samples. Have you read the Contributor Guidelines at https://publiclab.org/wiki/contributing-to-public-lab-software and are you comfortable submitting pull requests?
Have a look at my Github profile which gives how I work daily on rails and ruby projects. I code daily which has become a habit. Apart from ruby on rails as backend I'm familiar with python, php and front end frameworks include backbone.js and angular.I worked on various backend frameworks and libraries which include Ruby on Rails, Django, Tornado, CodeIgniter, hubot( I use hubot for deploying my personal projects). Apart from development I'm good with best security coding practices, vulnerability assessment, pentesting and application security.
I started contributing to rails projects which include rails, shopify gem and ruby-benchmark which gives a long running benchmarks for the features in various versions of rails and ruby.
My PR's for contributions:
I have read the Contributor Guidelines and I'm comfortable with git and submitting pull requests.
Describe teams you've worked with before, whether open or closed source, and in what capacity you participated. Cite examples of how you were self-motivated and self-sufficient.
I worked as Software Developer Intern at HackerRank for Summer 2015 and Winter 2015. HackerRank technology stack includes Ruby on Rails, Mysql, Redis, Memcached, Backbone.js in the front end. My work at HackerRank includes:
Apart from HackerRank I worked at Synack Inc. as a Red Team Researcher and team contains top 100 world security researchers.
Would you describe yourself as especially good at or interested in some aspect of coding or problem solving, or open source science? Provide examples and links. Are you particularly suited to this proposed project?
I would love to work for Rails development and any ruby gems. I treat every step as problem and implement a solution iteratively. Open source is something amazing and gives a lot of happiness when solving and especially implementing tests for the code written. Through open source contributions I got to know a lot of things code style, code reviews and the entire process of tests which is something I can't learn without contributing to projects.
Yes I'm suitable for this proposed project as I started working on the day GSOC organization results were announced. I contributed a little to plots2 repository and with in a span of less than a month I currently stand in top 5 contributors to plots2 repository. My contribution to plots2 initially started with fixing of mysql gem version which is a small PR but fixed a major impact bug on development setup.
My PR's and contributions towards plots2:
Do you have prior interest in or work towards open science or environmental justice goals?
I had a course "Environmental studies" in my course work which every university has to bring awareness among students. This turned into an interest and I worked as a volunteer for an NGO on environmental work life balance.
Whom will your work serve? Lay users, other programmers, non-technical people or nerds? While exploring advanced techniques is great, we especially appreciate proposals which make technologies and techniques more legible and user-friendly to non-technical users.
This project work serves for technical, non-technical users. Adding rich profile pages will improve user interaction for PublicLab users. Tags are interesting functionality which every user is familiar with, either through adding skills in social media(linkedin), filling any job application. User can enrich their profile through various tags listed in this project.
What motivates you to do the proposed work? Do you also have coursework or degree related reasons for pursuing it? This wouldn't necessarily be a bad thing - if you are for example looking to explore work related to a thesis topic.
I used Ruby on Rails framework to develop an application as one of my academic projects, and I was immediately attracted to it. PublicLab.org allows users to add new Research notes which is another good functionality which I love. Also I like the products made by PublicLab such as Foldable Mini-Spectrometer. Participating in GSoC would be a wonderful opportunity for me to work on an Open Source Project. Working on this project full time would help me hone my developer skills and acquire new skills. The experience I'll gain from this would be immense, which I shall use in my future contributions to Open Source and Projects.
Explain how you intend to continue being an active member of your project and/or Public Laboratory AFTER the summer is over.
Currently I'm fixing issues in plots2 repository and adding tests. You can view all contributions made by me. I will be an active member of the PublicLab organization after completion of my project. I will contribute to codebase as before through issue resolutions, adding tests, fixing any future bugs and help future contributors in their contributions.
Do you understand this is a serious commitment, equivalent to a full-time paid summer internship or summer job?
Yes I understand this as serious commitment and importance of idea for PublicLab.org. I expect to devote full time for the improvement of project and complete the milestone tasks efficiently. I will be active to communicate with mentors and receive necessary feedback to improve further contributions.
Please log in to RSVP
Hi, Lalith - sounds like a good plan. We might call the table UserTags to match the User model.
An interface might involve a set of expanding forms with dropdowns for different kinds of tags, kind of like how we use a dropdown to award barnstars, even though barnstars are just uniquely formatted tagnames. This would probably involve making a new set of templates in /app/views/profile/ or something, and a user_tags_controller.rb. We might want to think about a consistent and clear way to add new types of tag, starting with, say, geographic tags, but working towards, say, skills or equipment tagging.
An API on user.add_tag() would be nice too, which could be used to award tags for different things around the codebase, like, a person's tenth or hundredth research note, or when they answer a question (in the Q&A project).
A tagging autocomplete could also be a good project if you finish early.
I also added some thoughts to the ideas page: https://publiclab.org/wiki/gsoc-ideas#Rich+Profile+Pages+on+PublicLab.org
specifically with this new issue: https://github.com/publiclab/plots2/issues/442
It's vague, but is an interesting set of ideas to try once profile tagging exists.
user_tags_controller contains the API level endpoints for the tag data received. Definitely we will have a generic API for add_tag().
I will include tagging for autocomplete in the note section if project completes quickly :) (This is a easy task once we have tagging done)
Regarding "Achievements and skills" idea, I'm thinking of having a reputation score with a formula which is typically based on the tags and skills achieved by user. Representing graph can be done through D3 or highcharts. I'm familiar with highcharts, as data is going to be static we can go with highcharts. If you prefer D3 we can go ahead with it.
You must be logged in to comment.