Learn GitHub Workflows and Open Source the Fun Way: The Alice in Wonderland Project
Nov 5, 2022
Welcome to Wonderland!
Getting involved in open source and learning GitHub workflows can be intimidating and challenging for new developers - myself included. So during Hacktoberfest 2022, I created an open source repo to help other new developers learn GitHub work flows, get involved with open source while being social and making something fun.
The Alice In Wonderland Project History
This game was originally created as a python console game as part of a computer science course at Massey University, New Zealand in 2020. Part of the assignment was documenting the thought process using comments. (So there's a lot of comments in the .py file!). The assignment was the classic Camel Game from "Program Arcade Games and With Python And Pygame" and originally conceived in 1979 in "More BASIC Computer Games".
However, the premise of the game is both racist and colonialist - stealing an camel from the "natives" and racing away from them across the Mobi desert. So I changed the theme to Alice from Tim Burton's Alice in Wonderland movie rescuing the Red Queen's Bandersnatch from his imprisonment and racing across Underland to get to the White Queen's castle. I also added a random chance that the player would be attacked by the Jabberwocky, be killed, and the Jabberwocky poem would print on the screen.
Accessibility - Part of Every PR - Not Retrofitted and Refactored
This project is being developed with accessibility in mind from the beginning and at every step. That starts with semantic html, labelling elements, and having a "skip to main content". It also means that even if planned accessibility features such as theme switching aren't being released in a particular version, the code is still written to make those features easily added.
This is one reason why CSS variables are being used, instead of hard coding colours and font/text attributes. While CSS variables are a more intermediate level skill, they make it easier to switch colours, type/font and implement theme switching instead of having to refactor the entire stylesheet.
This is not just an "extra" add on. It's industry best practice as it results in immense cost savings to include accessibility at every step in the development process. You wouldn't build a house without doors and windows, then cut holes in the walls afterwards to put them in. That's both costly and down right silly. So don't build web apps and software that way!
Where the Alice in Wonderland Project is Going Next
Now that the Hacktoberfest is over, this project is going to progress slowly and steadily. While I'm a new dev, I've created and managed other types of projects before and know how to keep things from going pear shaped. Miscommunication and project creep suck!
So, I'm working on setting up some project management tools (e.g. Jira, discord server for live chat), an initial project proposal, and delegating parts of the Alice project so that it stays doable for everyone. A slow, organized and thoughtful start means a much better experience for everyone! No one needs to end up with as sore a head and grumpy as the Red Queen! Maintainers don't need to lose their head by getting overworked. ;-)
If (when!) you get involved with The Alice in Wonderland Project, expect a relaxed, fun, social pace. We're not trying to push out new releases and versions on a fast paced schedule. We're building a community, having fun, and learning together. Everyone has personal lives, projects, and things that keep them busy. That shouldn't prevent any of us from being part of the open source community!
How to Get Involved
If you'd like become part of the community at The Alice in Wonderland project on GitHub and contribute to developing the game please follow these three steps:
- Please introduce yourself in the discussions tab
- Have a quick read through both the CONTRIBUTING.md and README.md files
- Comment in the issue that you'd like to work on.
If we still have contributor spots open, one of the maintainers or myself will assign you the issue. If we've maxed out the number of contributors we can effectively support, we'll put you on a waitlist, and you're welcome to follow along on GitHub.
People Roles - Who Does What?
Finally there's me. As the project creator, I'm writing the project management documentation, guiding maintainers in contributing to project management, and helping new devs learn markup and technical writing.
Join Your Fellow Devs Down the Rabbit Hole Today!
Say Hello on GitHub: https://github.com/GingerKiwi/alice-game
Connect with me on LinkedIn
Follow my blog, and watch out for when the new JamStack version is released gingerkiwi.blog
Follow me on Dev.to
Happy Coding, and Welcome to Wonderland!