This blog post is specially addressed to the audience, that mean you! I’ll make a few assumptions about you. First, I’m 90% sure that you’re not familiar with the Camel Website Project. Second, I’m 50% sure that you’re new to Open Source. Let’s say you’re a newcomer to the Open Source world, have some experience in coding, and want to contribute to Apache (which I highly recommend you should!). In this post, I’ll try to pitch my project to this newcomer.
First up, some background. The Apache Software Foundation is a huge and thriving Open Source group with hundreds of projects. Camel is one such project, which in itself has 5-6 sub-projects. Camel is essentially an integration framework. The Apache Camel Website is the official website for this project and hosts information and documentation for Camel and all its sub-projects.
Second, a little bit about the website. We host more than 1000 webpages on our website! We have a Blog where we capture our latest releases and events. We have a Community page to help new contributors like yourselves (hopefully!) get comfortable with Camel. And lastly, we host a HUGE set of documentation for Camel and its sub-projects. We call ourselves a documentation heavy website, which is a one stop solution for all Camel users to find what they’re looking for!
Third comes the project. In the simplest words, my Outreachy project is about improving the Camel Website. Improve how? In a number of ways :
- Design – Bring some fresh creativity to the website! If I have to define our website’s design in one word – I’d say minimalistic. And I love it. Simple, clean, sophisticated. I have so far redesigned a few aspects – mobile menu, documentation page etc
- Improve the code – It’s not all about making the website look fancy. Refactoring or rewriting code in itself reduces a lot of effort that goes into maintenance. This part mainly caters to the interest of the developers, not so much the users. How can we fasten the development process, how can we write code which is reusable and scalable – all these things really do matter. Especially when you’re maintaining a website this big!
- So far you’re my audience, but let’s talk about the audience of our website. Ssuppose you’re a developer stuck with one of the Camel components and you land on the website. What’s the fastest way to get what you want? Search. With thousands of documentation pages, we need to make sure that search works well. I spent about a month working on this part. A lot of it was experimental, and I’ve covered it in the previous blog post.
- Accessibility – This is new to me as well. When we think of making a website, we think of what it should look like, what colors we want, what features and menu items we want.. But there’s a lot more that goes into making a good website. Accessibility evaluation tells us how good our website is for folks with disabilities, or for an average user who is accessing the website from different browsers and different devices. You’d be surprised to know how much color contrast matters!
The way that we go about our project is that we raise issues on JIRA, which is our issue tracker. Then we post design mockups, draft solutions etc there, and gather reviews and feedback from community members and contributors. Once we have a solution that the majority agrees upon, we code it up and open Pull Requests on our GitHub Repository.
Hope that was helpful for understanding my project. If you’re a newcomer who’s looking to begin with Open Source, I can personally vouch for Apache to be a great place to start! You can contact me via the contact section for more queries 🙂