Skip to content
Go back

Hacktoberfest 2022: Building a Word Cloud Generator

4 min read

What is Hacktoberfest?

Hacktoberfest is a month-long celebration of open-source projects, their maintainers, and the entire community of contributors. It’s a fantastic opportunity to give back to the open-source community while learning new skills and connecting with developers worldwide.

Since 2017, I’ve been actively contributing to various open-source repositories on GitHub. This year, I decided to take a different approach—instead of just contributing to existing projects, I wanted to create something of my own and encourage others to contribute to it.

Hacktoberfest t-shirts collection

My collection of Hacktoberfest t-shirts from years of open-source contributions. Sorry for them not being ironed. :3

The Project: Word Cloud Generator

After a period of health challenges that kept me away from active development, I decided to create a simple yet meaningful open-source project. The result was a Word Cloud Generator that does much more than meets the eye.

Generated word cloud from Wikipedia article

A word cloud generated from a sample Wikipedia article

Technical Stack and Implementation

Core Technologies

Key Features

The word cloud generator includes several sophisticated features:

Lessons Learned and Technical Insights

1. Bootstrap 5 Evolution

Bootstrap 5 has come a long way since its earlier versions. The removal of jQuery dependency has made it significantly lighter and more performant. The new utility classes and improved grid system make responsive design much more straightforward.

2. D3-Cloud Library Considerations

While d3-cloud is powerful, it has some quirks when creating multiple diagrams on the same page. The library can throw warnings about overlapping elements. For production applications, consider alternatives like ChartJS word-cloud library which offers better performance and fewer edge cases.

3. Web Workers for Performance

Web Workers proved invaluable for this project. Text processing, especially with large documents, can be computationally expensive. By offloading this work to background threads, the UI remains responsive and users get a smooth experience.

4. HTML Select Element Limitations

A surprising challenge was the HTML select element’s inability to contain child nodes. When trying to display images or complex content within dropdown options, you need creative workarounds like custom dropdown implementations or alternative UI patterns.

Open Source Collaboration

After completing the initial version, I opened several issues and marked them as “good first issues” for the community. This approach not only helps improve the project but also provides learning opportunities for new contributors.

While the project was developed quickly and could benefit from more refinement, I intentionally kept it simple to make it accessible for contributors of all skill levels. The goal was to create a welcoming environment for open-source newcomers.

Personal Reflection and Growth

Working in education for many years, followed by health challenges, made me realize how quickly the technology landscape evolves. This project served as both a technical challenge and a reminder that continuous learning is essential in our field.

The experience reinforced several important lessons:

The Impact

This project has been more than just a Hacktoberfest contribution. It’s become a platform for:

Try It Out

You can experience the word cloud generator yourself at jian.sh/word-cloud-generator.

Looking Forward

This project continues to evolve with community contributions. I’m always open to discussions, suggestions, and improvements. Whether you’re a seasoned developer or just starting your open-source journey, there’s a place for you in this project.

Conclusion

Hacktoberfest 2022 was more than just another month of coding—it was a reminder of why I love this community and this field. Building something from scratch, sharing it with others, and watching it grow through collaboration is what makes open source special.

The word cloud generator project embodies the spirit of Hacktoberfest: learning, sharing, and building together. It’s a testament to the power of community-driven development and the endless possibilities that emerge when we combine our skills and knowledge.


Interested in contributing? Check out the GitHub repository and join the conversation. Every contribution, no matter how small, makes a difference.


Share this post on:

Previous Post
Reddit Data Scraping with Python: A Simple Approach
Next Post
AI-Generated Anime Art: Exploring Stable Diffusion with Waifu Diffusion