Categories
Outreachy 2020

The Struggle : Part 1

The beginning was tough, but the real struggle starts now! My internship with Apache Camel is all about improving their website. Have a look at it here! I love that my mentors gave me the freedom to work on what I like, no tasks were “assigned” to me. There are a couple of areas where the mentors are looking for improvement, but I’m free to take them up as and when I wish. I started with a couple of areas which required improvement – Design and Search.

I began with redesigning the Camel Projects Page. It was fun! I like making attractive sophisticated website designs, but when you’re working with a website as big as Apache Camel’s, you must take care of not going astray from the overall theme. It really does matter. I made some pretty major changes which I later realized weren’t very compatible with the rest of the website. So I’m still learning to implement my ideas in an iterative manner, and not all-at-once. I’m also working on revamping the main menu for mobile screens – trying to come up with something creative! These design tasks are things I really enjoy doing. I absolutely love a well designed website, so I had a lot of examples in mind to draw inspiration from.

Let’s talk about something I wasn’t so sure about – Search. Apache Camel’s website uses the Algolia framework to provide search. We’re not too keen on including Google search in our website, so we’re using the free plan for Open Source projects provided by Algolia. Until now we use a crawler provided by Algolia to index our website, but it’s not working very well. Plus, since our website is documentation heavy, we really really need good search for our users to be able to find what they need right away! The task at hand is to index all pages of the website in a way that makes Search Results more relevant. It’s a big task and initially I was very very confused. Here’s what really helped :

  • Initially I was hesitant to ask, since I didn’t really have any particular questions, I was confused about almost everything. I had looked up the Algolia website but I wasn’t sure if I was reading the right documentation.
  • I brought it up on chat, which prompted my mentors to make a JIRA issue (Apache uses Jira to track issues) about Improving Search. They added some useful documentation links in the description. These were very helpful in making me understand the pipeline of how Algolia uses Json records to perform search and return results.
  • Also turns out there were previous attempts done on this issue, which the mentors shared with me. I went through these PRs. I could now pinpoint where exactly I was unable to make a connection between the pipeline I just learnt about and the code that was in front of me. I needed more context.
  • I brought this up on call with my mentors. They screen-shared and gave me an overall idea of which parts of the code referred to which parts of the pipeline in one of the previous attempts. Very helpful indeed!

I’m not done with this task yet. It’s a big one that might take over a month, so I’m making progress in small steps week by week. Meanwhile, I take up more design and accessibility issues every week to ensure I’m making some progress on that front. All feedback is welcome, if anyone reading the blog wants to look at the Projects page or the Mobile Menu of the Camel Website, please email me your feedback via the Contact section! The pull requests are not merged yet, I’ll update here as soon as the new designs are merged.

Update : You can see the Documentation page, which has been merged with the Projects page.

Update : There’s a part 2 for this post!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s