Jamie Sullivan
3 min readOct 23, 2020

--

My Time in Lambda Labs 27 — Citrics Team C

During my Lambda Labs experience, my team was tasked with solving the following problem —

Information about cities is scattered across the internet, — Yelp, Trip Advisor, Google Maps, Craigslist — and there isn’t a central location for people who have adopted a nomadic lifestyle to make apples-to-apples comparison of cities.

We worked with an internal stakeholder at Lambda School to design and build a product call “Citrics”. Citrics works by compiling data from across the internet and displaying it to users in a comparative way. Users can narrow down their search by saving favorites and viewing individual city data by expanding the “city card”.

To build our product, we broke down features into user stories, and broke down user stories into a set of engineering tasks that could be distributed across the team. For this, we used the task management tool Trello.

In this example, I was tasked with saving and viewing favorite cities. This was broken down into tasks such as:

  • Toggling the “like” icon using a custom visibility hook
  • Setting up Okta authentication so that the the our API can identify user based on an Okta token
  • Creating a favorites page that would pull in and display user data — mapping the “Favorites” data on the user object to the CityCard component and displaying the favorites in a way comparative way

Making it Happen: Technical Implementation and Roadblocks

My primary technical contributions to our team were front-end tasks such as -

  • Setting up Okta authentication
  • Creation of the “CityCard” component
  • Creation of a custom hook to toggle icons
  • Mapping “favorites” to global state
  • Creation of the NavBar component
  • Routing and Private Route set up

One of the biggest technical challenges my team faced was understanding how to customize AntDesign components to fit the look and feel of our product. To solve this, I set up our LESS variables and learned how to target the specific AntDesign classes to override their default styles.

This removes a small bottom border on our NavBar icons

The Future of Citrics

As of the writing of this blog, the Citrics product is deployed and anyone can use its comparative search feature to display a list of cities. Full feature list includes —

  • Search for a city and see its stats compared to a National Average
  • Add more cities to the search to see that data displayed next to the National Average
  • Login using Okta
  • Toggle data between line and bar graphs
  • Save a city to your favorites
  • View your favorite cities

I believe in the future we will add the option to enter in certain criteria such as

  • Desired weather patterns
  • Range of cost of living index
  • Range of average household income

And have this form return a list of cities that meet that criteria. I believe this may be challenging as the DS API we leverage is not set up to take in this kind of data, so it would need to be set up on the WEB API using our own tools for filtering.

I’ve learned quite a bit over the course of this project. I learned that I am a leader, but I also learned that sometimes in my hast to move a project forward, I can overlook teammates who are less likely to speak up and offer their thoughts/opinions to technical conversations. This is something I would like to work on, as my teammates who were quiet in team discussions offered some of the most valuable technical contributions to the project. I believe as someone who leans into a project manager role, it is part of my job to make sure everyones voice is heard.

I am grateful for the Lambda Labs experience and for my Citircs Team C team.

--

--