Hello, Blog!
If you have just stumbled upon my OSD600 series of blog posts, it has been created to document and share my learnings as I progress through my Open Source Development college course.
Lately, I have been falling behind on blogging. This post, for instance, should have gone up last week, right after I wrapped up the planning phase for our final Open Source assignment. But as they say, better late than never! Today, I’ll take you back to where I was a week ago to share how I approached the planning process, the project I chose to work on, and the personal goals I set for myself.
A bit about Release 0.4
For our final assignment, we were tasked to leverage the skills and experience we’ve built over the term to work on something meaningful to us in one way or another.
Looking for the right project
Finding the right project to work on was the toughest part of the planning stage. I spent hours browsing popular open-source repositories and reading countless articles on "best open-source projects for beginners" (half of which list projects like Linux Kernel as a great starting point for beginners). As that approach wasn’t working, I decided to focus on something fun. Something that I wanted to try for a long time but didn't have a chance (or at least so I thought) to do.
The first idea that came to mind was exploring fun VSCode extensions. I’ve always loved quirky extensions made to bring a smile to a coder's face right in their IDE. However, after doing some research, I discovered that most of these extensions are more like personal side projects than active open-source initiatives. Many of the repositories hadn’t been updated in over a year.
For example, I tried contributing to the repo of a VSCode extension featuring one of my favourite memes, (Incredibly In Your Face). It’s a simple but genuinely funny project with over 100k downloads on the VSCode Marketplace. I picked an issue, submitted a comment, and waited for a response. Unfortunately, I haven't heard back since the project is no longer maintained.
Comment for #6
arilloid commented onHello @virejdasani!
I know it's been a while since you have released the extension, but I was wondering if you are still open to accepting Pull Requests.
I’m a student just starting my Open Source journey and looking to play around with some VSCode extensions & I would love to contribute to yours as I find it genuinely funny!
With time running out, I decided to pivot again and look into the repositories my classmates worked on during Release 0.3.
And then, finally, I found the perfect project!
The project I picked
The project I chose is a game in active development created by a group with ties to KubSu, one of my country's most renowned tech universities. It’s maintained by a close-knit community of former students, many of whom are now immigrants (essentially, people in the same boat as me). The atmosphere felt welcoming, and the project maintainer stood out as very supportive and helpful, thoroughly responding to my classmate's comments. It feels like a community I could genuinely see myself joining if I continue to contribute.
Even the name of the community is compelling:
Move Fast and Break Things - an ultimate developer's motto!
+ An online game, what can be more fun than that?
move-fast-and-break-things / aibyss
🚧 UNDER DEVELOPMENT 🚧 Aibyss: code your AI to compete in a survival game
🚧 UNDER DEVELOPMENT 🚧 Aibyss: code your AI to compete in a survival game
Setup
- install node.js
-
(on macOS only) install
node-gyp
:npm install -g node-gyp
- install the dependencies:
npm ci
Development server
Start the development server on http://localhost:3000
:
npm run dev
Create new user
npm run create-user <username>
Running the tests
unit tests
npm run test
e2e tests
First, setup e2e tests by running npm run test:e2e:install
, then run the tests with:
npm run test:e2e
Contributors guide
We follow conventional commits, name your PRs accordingly
Production
Build the application for production:
npm run build
Locally preview production build:
npm run preview
Check out the deployment documentation for more information.
So, that’s how I decided to work on AIbyss, an online competition game where players program AI bots to compete against one another.
While the project is relatively small, it offers many learning opportunities. I’m unfamiliar with most of the stack (Nuxt, Vue.js), have never worked on online games, and also haven’t tackled any frontend-related issues in my open-source journey. All this combined makes the project a great fit for my Release 0.4.
The goals I set for Release 0.4
-
Contributing to the project in a meaningful way - to achieve this, I decided to start by picking up an issue with a
high priority
label
feat: let the users view the rating page without having to log in #42
This is a follow-up idea to the #37 and should be done after it is merged.
Getting comfortable with the tools - as mentioned, the project utilizes a lot of tools that are new to me, so I was excited to see them in action.
Communicating with the maintainers more actively - in this release, I wanted to engage more actively with the maintainers. Instead of waiting until my work was complete, I planned to create a draft PR early on to gather feedback and collaborate more effectively throughout the process.
Stay tuned
I’ve already picked up an issue and started working on it, so stay tuned — I’ll share my progress in an upcoming post!
Top comments (0)