Skip to main content

DPS 909 - Release 0.3 - Diving Deeper

Hacktoberfest has come and gone. For everyone who attended and made an effort... hopefully you all got your shirts! For the rest of us... well you win some and then you lose some. But if you didn't, don't let it get you down - the true open source is the friends you made along the way. And speaking of friends, our Fall 2019 class of DPS 909 at Seneca College has decided to do something a little special for our Release 0.3 assignment: we've started our own internal, open source project!

To cut a long story short, we've been tasked with developing a web application that aggregates open-source-related blog posts from current and former students of the DPS 909 course. A very old, and very out-dated version of the website current exists here, but it is clunky, buggy, and prone to errors that block up the whole system. It's our job as the current students of DPS 909 to redesign and revitalize this website into something much more intuitive and robust. The repo of our current project can be found here.

We can do better!
With 60 students currently enrolled in the course, we are in no shortage of contributors, but organizing a project around that many amateur open source developers is a task in and of itself. It's been about a week and a half since the project was announced, and already there was quite a bit of learning involved. We've had to slowly grasp how to take charge of issues; on top of actually writing code and submitting pull requests to the project repo, we also have to take part in discussions regarding the development of the system itself, as well as review our peers' contributions. Unsurprisingly, it's been quite a hectic experience, but also a valuable learning opportunity! You can find the full project description here, along with our list of MVP features and future pipe dreams... hopefully we'll make it work!

As for my contributions, I've been doing a lot of learning, as well as passing off what I've learned to the team via our project discussion boards and Slack channel (the latter of which is private... sorry!). For example, in order to get the project rolling, I suggested we implement a simple plaintext website that simply retrieves blog content and caches them as JSON files - a system that would make up a very rudimentary backend until a proper database can be implemented. I don't know if my suggestion made a difference or not, but our instructor, David Humphrey, went ahead and developed a basic system that retrieves blog URLS from a plaintext file and logs the queue to console (thanks Dave!).

I am currently working on implementing a way to retrieve blog posts from RSS and Atom feeds, and filtering them based on the timestamps of the blogger's most recent post. The idea is that we don't want to keep displaying outdated blogs that are no longer maintained by their authors, or, at the very least, mark them as being on hiatus. As I develop my contribution, I am keeping in mind that eventually it will make its way into a system that is being worked on by dozens of other people. So, modularity is key, which is great news considering we're working in Node.js!

Before I've even started laying down any code, I've already run into something of an issue. The containerization platform we've chosen, Docker, does not play well with VirtualBox, which I need installed on my workstation for another school course. Looks like I'm going to have to do some native installations.

Uh oh.
Aside from the internal project, we're also required to continue our contributions to external open source endeavors. I have not began my work on any external projects just yet for Release 0.3, but I've definitely scoped out the project I want to work on - the open source game engine Godot. I've used the Godot software for some hobby-grade game development in the past, so I think it's high time I contributed back to the community! There are as many as 5000+ issues currently at large... choices, choices!

No shortage of issues on the Godot game engine project.
There's definitely lots to work on these coming weeks, so stay spry and keep hydrated folks!

Comments

Popular posts from this blog

DPS 909 - Lab 3 - Hacktoberfest, and the Very Scary Repository

It's that time of year; the mornings are getting chilly, the leaves are turning, the pumpkin spice is flowing, and open source developers are getting all worked up over something called Hacktoberfest . Not to be confused with the other , similar-sounding (though arguably no less beer-filled) celebration, Hacktoberfest is a chance for open source enthusiast to truly flex their projects and contributions. Hosted by DigitalOcean , Hacktoberfest 2019 is an event running throughout the month of October that encourages activity in the open source community. It is completely free to sign up, and participants can even link their Github accounts to use as their Hacktoberfest profiles. As you may have already guessed, I will be participating in this event as my next major milestone on my journey into the world of open source. Through the miracle of APIs, even my profile picture was imported! While the prospect of diving headfirst into such a large, open source event as a beginner may s

DPS 909 - Release 0.2 - Hacktoberfest Week 3

I'll admit it right off: this week, I did not have a lot of time to spare for Hacktoberfest, so I was unable to tackle a new goal (out of the ones I set for myself at the start of the month). Nevertheless, I did not want to jank up the weekly momentum I had by missing a contribution, so I simply opted for a simple one instead. I found a nice project , by GitHub user vichitr , that focused on encouraging amateur contributors during Hacktoberfest, not unlike the last repo I contributed to. Instead of focusing on design patterns, vichitr's project contains a variety of issues that programmers are invited to tackle. I decided to contribute to issue #6 on the repo, which is to implement a data structure in the language of your choice. Since I was short on time for the week, I decided to contribute a threaded tree by overhauling a previous project I did as a school assignment. A threaded tree is a binary search tree that supports easy, in-order traversal of its values. Normally,

DPS 909 - Release 0.2 - Hacktoberfest Week 1

As mentioned in my last blog post , I am currently in the midst of participating in Hacktoberfest in order to deepen my understanding of open source. For my first week, I decided to start with a simple issue that I could confidently contribute to: the HackSta account's issue #12 . This issue invites other Github users to contribute customized icons for the Atom text editor (a product of Github!). It was very easy to start - users simply have to fork the repo and contribute new designs for the Atom logo in SVG format. The project has had many contributions in the past, and already has a large collection of over 500 icons, so there was lots of materials and references to work off of. The entire collection of custom Atom icons can be found on the project's website . There are entire collections of interesting variations on the default Atom logo, including palettes pulled directly from the color values of country flags and famous sports team logos. Take your pi