Public Lab Research note

Outreachy proposal: New Dashboard Implementation Project

by fionaodoboh | October 28, 2020 21:37 28 Oct 21:37 | #24854 | #24854

About me

Name: Chiamaka Odoboh

Location: Lagos, Nigeria.

Fun fact about me: I love everything nature.

Project Description

New Dashboard Implementation Project

Abstract/Summary (<20 words):

Provide an easy and appealing dashboard with a more organized user interface and a better user experience.


This project aims at the implementation of a new dashboard on the Public Lab website which will possess a better user experience hence making it easier to use and understand.


I have broken the project into smaller bits that can be achieved within each week of the internship.

Week 1:

  • Interact with the Public Lab community.
  • Learn and understand more about the projects codebase.

Week 2:

  • Creation of new page to display 'All posts'.
  • Implement mockup design for the 'All posts' page.

Week 3:

  • Add content to the rest of the tabs - Research notes, Questions and Wiki pages.
  • Replace 'peoples tab' with 'comments tab'.

Week 4:

  • Implement a route for the new dashboard.
  • Implement mockup design for the new dashboard.
  • Write unit tests for my implementation.

Week 5:

  • Implement sort functionality for the 'All Posts' page.
  • Fix mobile responsiveness for all pages.

Week 6:

  • Display a list of topics a user has subscribed to.
  • Fix odd line folding on individual posts in topic cards (I need clarity on this).

Week 7:

  • Display blog topic at the top of the dashboard topics list.
  • Implement the page that gets displayed when a user clicks on the 'Post' tab on the topics card.

Week 8:

  • Implement code to display a prompt to tell if a user has followed less than three topics.
  • Create FTO issues.

Week 9:

  • Enable an autocomplete feature on the topics search at the sidebar, which will be similar to the search on the tags page.
  • Add logic to connect the 'add location' button to work the same way as it currently does on the tags page, bearing the map pop up and page reload in mind.

Week 10:

  • Display the 'Nearby location' button once a user enters their location and a view on map button.
  • Implement code to add or remove new subscribed-to topics using AJAX.

Week 11:

  • Display blog topic at the top of the dashboard list and exclude it from the subscribed list.
  • Implement blog subscription using email by adding a button or an option after the kebab menu on the left has been clicked.

Week 12:

  • Implement code to view location on a map.
  • Fix mobile responsiveness for the new dashboard.

Week 13:

  • Test the new dashboard completed with the mentors to see if it can replace the main dashboard page.
  • Implement any request on improvement.
  • Create FTO issues and write documentation.


Availability of mentors to help if and when I get stuck.

Currently, there are some tasks listed for the dashboard implementation that are not quite clear. For example

  • Resolve odd line folding on individual posts in topic cards.

First-time Contribution

Here's a link to my first time contribution;

I have included the links showing my overall community involvement;


I started learning about software development in my final year in the University. I started out with frontend web development using technologies such as HTML, CSS, Bootstrap and JavaScript. I have a knack for creating amazing, accessible and user-friendly web applications.

Below are some of the projects I've worked on;

Below are my skills set;

  • Languages: JavaScript
  • Frameworks: Bootstrap
  • Web Technologies HTML, CSS, SASS
  • Libraries: jQuery, React JS
  • Version Control System: Git


I interned at SheHacks Africa, DevCareer x Progate and WeJapa. Here, I worked with teams and learnt how to collaborate with other members to achieve amazing goals. At these internships, I was opportune to work on some projects.

Below are the links;


I'm passionate about community service and although I have never really had the opportunity to take part in it, I connect fully in the goal of Public Lab which is to facilitate ways to solve environmental and social problems using Open Science.

I aspire to be a part of an organization that impacts change and difference in humanity no matter how little. The most amazing part is where with technology, I could improve someone's environment with the software I write.


Public Lab is an organization where members of the community work together to solve environmental problems. You can post an event, a research note or ask a question using the editor or wiki.

This project can help students who want to learn more about their environment or those studying environmental related courses and need a project or community to align with while they learn. In the long run, this project would bring some changes and promote inclusion.


I understand that to achieve all these, I need to be fully committed. I have decided to devote 40 hours weekly to fully achieve all the goals I have set.


Hi @fionaodoboh - thank you!!! This is looking great. I wonder if you might come around to creating the new dashboard route and template earlier than week 6 -- I've seen your work so far and it seems you'd for sure be up to it earlier if you wanted. My thought is that you might want to make a very simple first version of it, and progressively/iteratively expand upon it by adding more and more. That way you can gradually add tests, refine the code, etc. It'll all be at "/dashboard2" until it's ready, anyways, so you won't be breaking any old functionality! What do you think?

Thanks for your proposal!

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

Hi @warren, thank you for the feedback. I would readjust my timeline and make corrections to it based on your feedback. I'd make a simpler version of the dashboard and then write unit tests using Mocha or Jasmine.

That's great. I might suggest tests in Jest, as many of our libraries are starting to use it and it's a bit easier to work with than Jasmine! Though I'm not sure about Mocha as much myself; i know there are some tests on our site using Teaspoon/Mocha (on plots2) but we also have Rails System tests in /test/system/ which test JavaScript.


Alright, I'd look up writing tests in Jest. Thank you!!

Reply to this comment...

Login to comment.