All posts by Rosy Gupta

OH Project Management App – Going Forward

We are happy that Open Humans will have four Outreachy interns this summer. Our interns are working on their own Open Humans related projects and will regularly blog about their internship experience. Read Rosy’s post about creating an app to manage your Open Humans project:

Open Humans Project Management Web app allows Open Humans project admins to view and work with their members and data. Since the last time I wrote, plenty of work has been done to make the app more useful:
  1.  Members can be filtered based on multiple parameters.
  2. Custom groups can be formed and members can be conveniently added/removed to/from those groups.
  3. Project Admin can keep notes about specific project members and can also edit/delete these notes.
  4. Every member usually shares some data with the project which earlier had to be accessed by downloading individual files. A single click download for all files of a project is now possible in the form of a zip file. The files can be selectively downloaded together for specific project members by downloading the files for a particular custom-group.
While developing these features, it has been an absolutely fulfilling experience to be able to refine the work as Dana Lewis did some testing as an end-user and provided some great feedback 🙂
So far, some of the highlights of my work are:
  • The dashboard shows a lot of information and allows a variety of actions – this made it crucial to design the application focusing on the user experience.  I worked with various aspects of a front-end framework (Bootstrap here) and came across the ease of basic styling of HTML elements such as forms, tables, buttons, icons, etc. and the most useful – Bootstrap modal. Bootstrap provided with a consistent theme for the dashboard with good documentation. It now keeps the scope to leverage the grid system to allow development of a mobile-first application.
  • Running codebase in different environments is always a great learning. Working with the file-download feature I learned that a given request on the web worker may only last 30 seconds on Heroku (our production environment) and will be killed after that period. Since creating a zip file can easily take longer, we did some brainstorming and decided to keep the network calls out of the request-response cycle by creating a celery worker task to do the downloading job. Working with celery worker tasks and Redis broker was a new and enriching experience for me.
  • To allow OH-run version and allow developers to run a version themselves as well, we weighed in two options to store the downloaded files – AWS S3 and transfer.sh wherein we settled on the first option given the 10GB limit on the latter.
  • Since the downloading of files happened as a background job, the user could be notified of the completion of file download either through a dashboard notification or via an email. We decided to go ahead by emailing the user (easy peasy) by setting up a configurable SMTP server in Django.

The work done so far has been rewarding in terms of experience with Django, Bootstrap and various other modules. More development calls for more feedback and hence, more iterations. Therefore, I’ll be working on making some modifications to the UI and features incorporating the feedback.

More Tango with Django ahead 😀 Cheers!

Open Humans + Outreachy : Weeks 1-2

We are happy that Open Humans will have four Outreachy interns this summer. Our interns are working on their own Open Humans related projects and will regularly blog about their internship experience. Read Rosy Gupta’s post about their first two weeks as an Outreachy intern:

What is Outreachy? What are the do’s and don’ts for your application if you are interested?  How did I find such an apt gig? What have I been and will be doing this non-vacation summer? Read on to find it out.

Outreachy is an amazing opportunity for underrepresented folks in Open Source Software Development. It allows you to work with tech organizations through a remote internship. It is somewhat similar to (the more heard of companion) Google Summer of Code (GSOC) but Outreachy happens twice a year and you don’t have to be a student to be eligible for it. Like most people, I didn’t know about Outreachy until I heard about it from former interns at an open source meetup. I was delighted to know that a remote and paid internship existed for non-students – seemed like an interesting way out to spend summers at home before starting my Masters in the fall.

So how do you get in?

Decide that you really really want to go for it

Getting onboard with Outreachy isn’t an overnight thing. You need to be involved with the organization that you intend to work with for a couple of months (hard truth). I started making contributions for Open Humans in February itself. Read up about the organization and the project nicely and THINK if you’d actually be able to spend your summer doing that. My fellow intern, Tarannum has some really good points on the organization and project selection in her blog post. Check it out here.

Code Communicate Sleep Repeat

Start with small contributions, even trivial bugs maybe and you’ll be able to make a major impactful one gradually as you get the hang of the code and the language. It’s good to raise your doubts in the common group (there’s no such thing as a stupid question). Having said that, it’s equally important to make a sincere effort before poking mentors and community with low-hanging fruit kind-of questions. The mentors in my case were damn helpful and pretty quick in solving our doubts, reviewing the code and merging the pull requests. Thanks for all the sweet help – Bastian Greshake Tzovaras (my mentor), Mad Price Ball and Mike Esclante.

Show Time – The Proposal

Unless you know about the project well, it will be difficult to come up with improvement suggestions for the project. Last minute stint usually doesn’t work – so it’s good to start with your proposal application ahead of the deadline. Keep it succinct.

 

After being chosen from a competitive pool of applicants, now, I am working with Bastian Greshake Tzovaras on Creating a stand-alone web application to manage and administer projects on Open Humans using Django. For the next three months, I will be adding some new features and enhancing the user experience for this project management application.

The first two weeks of my internship have flown by. I spent them going through unread pieces of code in the repo. Here, I learned that I need to comment the code a lot and since the project is in its infant stage, this quote would be a handy reminder 😀

“Always code as if the guy  who ends up maintaining your code will be a violent psychopath and knows where you live”

The application uses Django framework, so I’ve been trying to get my head around Python lately. One of the initial weird things was HTML with a bunch of curly brackets containing Python code. This turned out to be the templating engine, Jinja. I have also been learning more about designing the dashboards to deliver a good user experience. The work is giving me the opportunity to sharpen my Git skills too and I’m learning to make NEAT git pulls now.

The first few weeks have mostly been trying to fit in the remote work setting and understanding the timeline of the project. Luckily, my wonderful mentor, Bastian has been great putting my nerves at ease. He’s always encouraging me to communicate often (the key to remote work) and is quick with the doubt-solving sessions. Despite our contrasting time zones, it has been a smooth sail so far and his guidance has been really valuable.

My upcoming task is to work on building annotations for the dashboard. This would make the user experience more interactive. I’d also be working on adding a feature to download files in customizable ways.

I’d include more about my first two weeks’ work in the next blog post. Well yes, we need to blog every two weeks as a part of the internship. The good part is I’m writing my first blog post ever! Need more motivation?  Hit me up 😀

Good luck!