DEV Community

Emmanuel Gatwech
Emmanuel Gatwech

Posted on • Originally published at eman.hashnode.dev on

Introducing: Planet Of The Bugs

Planet Of The Bugs

As a software developer, you might have experienced situations where your code just doesn't work as expected, and you find yourself spending hours trying to figure out why or you may find yourself falling into the trap of copying and pasting code from Stack Overflow or GitHub without fully understanding the implications it could bring. This can introduce bugs or even security vulnerabilities that can be detrimental to the project. However, with a solid understanding of debugging techniques, developers can quickly identify and fix these issues.

The Need for Debugging Skills

Debugging is an essential skill for any developer, but it's often overlooked in traditional programming courses and tutorials. That's where Planet of the Bugs comes in - an interactive learning platform that teaches developers to debug and troubleshoot problems. Our aim is to save developers from numerous headaches caused by bugs such as memory leaks, and dependency incompatibilities.

This project and Hackathon use the dev branch as the active branch. Please note that the main branch is outdated and does not reflect the current status of the project.

| Project Links | Contributor Profiles | Inspirations |
| GitHub Repository | Emmanuel Gatwech | TryWilco |
| Website | Magid Faiz | CodeSandBox |

Note: Please use the dev branch for running the app or viewing the latest code changes. The main branch is currently suspended, so kindly avoid it.

The Problem πŸ•΅πŸΎ

Most learning platforms only teach you how to code, but when you get a job or work on a real-life project, debugging takes a huge amount of effort, and most developers lack these skills. Many don't know how to use debuggers, how to spot code smells, or what patterns to avoid to prevent bugs from occurring. Common bugs such as auth bugs, memory leaks, and async bugs can cause significant issues and leave developers feeling frustrated and overwhelmed.

Planet of the Bugs is designed to bridge this gap and provide developers with the knowledge and skills they need to write secure and robust software.

The Platform πŸ’‘

It's a unique and innovative learning platform that offers a comprehensive approach to debugging and troubleshooting. It aims to combine the power of AI-generated fake bug scenarios with real-world problem-solving opportunities. This app is designed to help developers of all levels hone their skills, improve their chances of success in the software development industry, and advance their careers.

Planet of the Bugs uses AI to generate fake bug scenarios for developers to learn debugging skills and the fundamentals of writing secure and robust software. By using AI, the app can provide an endless supply of unique scenarios, allowing developers to practice and hone their skills.

Inspiration

The app was largely influenced by my own personal experiences studying computer science at University and a Bootcamp after that saw well as working remotely for the past 4 years.

I got my aha moment when I discovered these sites Codecrafters, Exercism, Codewars, Coding Game, and Frontend Masters. I highly recommend you sign up because of how great their content is.

The platform is built around these core two concepts:

Theoretical knowledge πŸ€”

By providing a practical and collaborative environment for learning and practicing debugging skills, we believe that Planet of the Bugs can help developers become more confident and skilled in their craft.

Practical Knowledge πŸ‘©πŸΎπŸ”§

solving real-world problems from Github that will be recommended by the AI according to the user's skill and level of experience. This unique approach helps developers gain practical experience in solving complex issues that they may encounter in their daily work or when they finally get jobs.

Tech Stack

The app uses Sveltekit for the front-end end GraphQL for the API, and MindsDB for the AI models. Sveltekit is a lightweight and efficient frontend framework that allows for quick and easy development, while GraphQL provides a powerful and flexible API for data manipulation.

Core Features πŸ•Έ

The app is packed with exciting features designed to help both companies and developers achieve their goals! With cutting-edge AI technology, we've created a unique bug scenario generator that recommends personalized debugging strategies based on user behavior. This allows developers to improve their skills and become proficient at debugging, giving them a competitive edge in the software development industry.

Markdown Editor πŸ“ 

The Smart Markdown Editor in Planet of the Bugs is not just for documentation, it's also a powerful content management system (CMS) for creating course content. The editor makes it easy to create, edit, and publish content without needing to know HTML or other complex programming languages.

With the Smart Markdown Editor, you can create interactive tutorials, exercises, and quizzes that engage learners and help them develop their debugging skills. The editor allows you to add images, code snippets, and other multimedia elements to your content, making it more engaging and dynamic.

Built-in Code Editor πŸ’»

Here at Planet of the Bugs, we understand the importance of having a text editor that can handle any type of code. That's why we built our editor on top of the powerful Monaco editor. With our text editor, you can write and run any type of code with ease. Whether you're working with JavaScript, Python, or any other programming language, our editor has got you covered.

The benefits of our text editor go beyond just being able to handle any code. It also has features like syntax highlighting, auto-completion, and code snippets that make writing code faster and more efficient. Plus, with the ability to run your code right from the editor, you can test and debug your code in real time without having to switch between different applications.

Our text editor is an essential tool for any developer, whether you're a beginner just starting out or an experienced pro. With its powerful features and ease of use, you can focus on what matters most - writing great code.

Real-Time Collaboration (WIP)

The platform currently supports real-time collaboration in the form of audio calls for pair programming/debugging. This feature will allow developers to work together to solve problems in real time, making the learning experience more interactive and engaging.

Real-Life Experience πŸš€

The platform integrates with Github, allowing developers to receive updates about issues and bugs in the areas they've trained on. AI is used to provide issue and repo recommendations, enabling developers to practice solving issues from real-world projects on GitHub.

AI Integration via MindsDB πŸ€–

MindsDB provides AI models for generating fake bug scenarios and recommendations based on user behavior.

Course Creation πŸ‘¨πŸΎπŸ«

We know that AI models are not always perfect, so we created a Markdown editor to give users the option to create courses in order to practice solving bugs in the stacks they are interested in learning. There is a CMS with a markdown editor for course creation, and a text editor built on top of Monaco to run code snippets. The app also uses a third-party library to import npm packages.

A bounty Program πŸ€‘

A bounty hunting program to help companies crack bugs: We want to help companies find and fix bugs in their software. That's why we're planning to launch a bounty-hunting program that will reward developers for finding and fixing bugs in real-world projects.

Community Building πŸ₯‘

In addition, experts who have encountered bugs and sticky situations in the past can create courses on the platform to teach new developers how to avoid and fix such bugs. This approach allows new developers to learn from the mistakes of experienced developers and gain valuable insights into how to write secure and robust software.

The ability to create teams is another powerful feature of the platform. A tech lead could create a team and then a course to train their team on the company's stack. The code will be executed locally via a CLI, and the company's code will not be used in training any AI nor shared with the public unless explicitly allowed.

Leaderboards πŸ₯‡

Who doesn't love a bit of friendly competition? With the leaderboards feature, you can see how you stack up against other developers on the platform. Show off your skills and climb the ranks to be crowned the ultimate bug-squasher. Plus, top contributors will be rewarded with some seriously cool prizes, so keep on crushing those bugs!

Connections πŸ™ŒπŸΎ

But our platform is not just about learning debugging skills. It's also about collaboration and community. Our platform encourages developers to work together to solve bugs and learn from each other's experiences. With features like team creation and personalized training, we're creating a space where developers can come together to improve their skills and build stronger teams.

Future Plans πŸ•ΊπŸΎ

We're excited to see the impact that our platform can have on the developer community and we look forward to continuing to improve and expand our offerings we have big plans for Planet of the Bugs!

Our current goal is to continue expanding the platform and reaching as many developers as possible. We want to make sure that our app is serving the needs of the dev community in the best way possible, and I am always open to feedback and suggestions from users.

Here are some of the features we're planning to add:

CLI for Local Development

While our online editor is a great place to practice debugging, we recognize that developers may want to work on real projects locally. That's why we're planning to develop a CLI that allows users to clone or work on projects locally and track their progress in a similar fashion to websites such as Codecrafters, Exercism, Codewars, Coding Game, and Frontend Masters.

Sandboxed environments come with limitations, and the app aims to provide users with a more realistic development environment for practicing debugging.

Personalized training πŸ‹πŸΎ

Personalized training for teams: Finally, we recognize that different teams have different needs when it comes to training. That's why we're planning to offer personalized training for teams, tailored to their specific stacks and challenges

Smart Markdown Editor (Similar to Hashnode's)

We want to make it easy for developers to create and share courses on Planet of the Bugs. That's why we're planning to add a smart markdown editor that will make it easy to format and style your content.

Built-in AI assistant for Rubber-Duck Debugging

Built-in AI assistant for Rubber-Duck Debugging: Sometimes, all you need to do is talk through a problem with someone else to find the solution. That's why we're planning to add a built-in AI assistant that will act as a rubber-duck debugger, helping you work through your problems step-by-step.

A Job Board πŸ’Ό

We know that job boards are very cliche but we still decided to build one because we realized it would bring about many benefits for both, companies and developers.

For Organizations 🏒

We know how frustrating it can be for companies to find the right fit for their team, especially with all the challenges of the current hiring process such as bias, false positives, bad recommendations, and other factors. That's why we want to lend a hand and help companies make data-driven hiring decisions that will benefit both them and their potential employees.

  1. Happy Hiring!: Hiring developers who are already familiar with your products and codebases, and who have experience with your technology. By doing so, you can save time and resources on training and ensure a seamless onboarding process. So, consider hiring developers who have contributed to your codebase before and who can hit the ground running.

  2. It's a Match!: Besides being familiar and experienced with your codebases, you can trust that these individuals have a passion for your company's vision and are more likely to stay with your organization for the long haul.

  3. The Right Fit for Every Position: We believe in giving everyone an equal opportunity to showcase their skills and passion. Our job board will be 100% merit-based, ensuring that all developers, regardless of their background, have a chance to find their dream job. This benefits both developers and organizations, as companies will have access to a wider pool of talented and dedicated individuals who are passionate about their products and mission.

  4. You Deserve the Best: By posting job openings exclusively for our top contributors, organizations will have access to some of the best and most committed developers in the community.

For Developers πŸ‘¨πŸΏπŸ’»

We understand how daunting the job search process can be for developers, especially with the current challenges such as biased hiring practices, lack of opportunities, and inadequate job recommendations. That's why we want to make the process easier and more equitable for developers.

  1. Find Your Dream Job: Gain access to opportunities from organizations that genuinely appreciate your skills and enthusiasm. This increases your chances of securing your dream job and joining a company that aligns with your career goals. Furthermore, with a glimpse into company culture, you can be confident that it's the right fit for you!

  2. Dedication Earns Recognition: We understand that as a dedicated developer, you've invested countless hours in honing your skills to become the best in your field. At our platform, we recognize and reward your expertise for your hard work. By contributing to our platform and showcasing your skills, you can stand out in the competitive job market and increase your chances of landing your dream job.

  3. Giving Is Receiving: Showcase your skills and build a strong online presence by creating custom courses easily. But that's not all - by sharing your expertise, you can gain recognition and even earn through monetization.

  4. Make Valuable Connections: Make genuine connections with top companies and leaders. Grow personally and professionally. Connect with like-minded professionals, gain industry insights, and find mentors who can guide you to success.


Development Process

"Every Castle started at the basement" - Lupe Fiasco

GitHub GraphQL AP

The GitHub GraphQL API is really easy to use and explore. Their explorer is simple and intuitive, and it helped me find some great repositories that I could use to train MindsDB models.

MindsDB Integration

I couldn't integrate the mindsdb-js-sdk due to time constraints, but I was able to create some models and make repository recommendations using the data from the GitHub API. I plan to improve the SDK integration soon and also add a ChatGPT bot for generating bug scenarios and more.

Issue and repo recommendations via MindsDB

With MindsDB, we can give our users sweet repo and GitHub recommendations. You can check out our current explore page to see what we're working with. And don't worry, we'll be adding more AI magic and spicing up the UX/UI as we go!


Future Goals: Investing in Community Growth

Learning more about AI

As someone who is passionate about technology, I have always been fascinated by the potential of artificial intelligence. I believe that AI has the power to revolutionize the way we live and work, and I am eager to learn more about how it works and how it can be applied to different industries. My current goal is to continue exploring the world of AI and building my knowledge and skills in this area.


Summary 🏾

The Planet of the Bugs platform is designed to help developers learn and master the art of debugging and troubleshooting by using AI-generated fake bug scenarios. The app uses advanced machine learning algorithms to create endless supplies of unique scenarios, allowing developers to practice and hone their skills in a safe and secure environment.

It's a unique and innovative learning platform that offers a comprehensive approach to debugging and troubleshooting. It aims to combine fake bug scenarios and real-world problem-solving opportunities via issues provided by our GitHub integration to create a comprehensive environment to help developers hone their skills and advance their careers in the tech industry.

Resources πŸ“š

Thank you so much for reading this article! You can find the app's source code on this GitHub Repository and demo right here.

Special s/o to the following platforms/ people:

  • Joy of Code: For helpful Svelte tips and tutorials.

  • Svelte Society: For the amazing collection of resources and recipes!

  • Hashnode & MindsDB Community: Thanks to the awesome MindsDB team (specially Zoran & for this incredible hackathon and for introducing me to the powerful potential of MindsDB.

Top comments (0)