Web Development Onboarding
A hands-on workshop where we will be setting up the development environment on bikebike.org and bikecollectives.org on your computer. If you are a web developer or aspire to start learning web development you are welcome to attend. By attending you won't be committing to helping out but if you do, you are welcome to do so at your own pace. Please bring a computer.
We will be going through the process of installing dependencies and downloading and setting up the repositories that we own. We will also talk about ways that the environment can be improved and plans that are already in place to improve our ability to collaborate.
If you're more interested in helping out with copy, translations, design, or any other related aspect, you are welcome to join but time will be prioritized for developers. We need your help too so I'll do my best to answer any questions if time can be made.
Since Bike!Bike! started in 2003 until 2012, each host organization re-built bikebike.org from scratch, all work and data was lost from year to year. In 2013 we decided to build a permanent site that would retain this information, lessen the load on host organizations, and provide additional tools for both hosts and attendees.
The process has not been without issue, we have re-built the site three times in two different languages, had usability issues, some really bad bugs, etc. However we have also been able to translate the site into Spanish (2015) and French (2017) and given some more powerful tools to administrators to help smooth out some of the common problems scheduling workshops, arranging housing, etc.
Back in 2013 we also re-built bikecollectives.org as a read-only one-page site, but there has been a lot of ideas on how we could make it more useful for our community. Over the next year the plan is to re-develop the site so that it uses much of the same code-base and database as bikebike.org which will allow us to add up-to-date organization information, translations, and more member specific tools such as the ability to create and view job postings.
Although I've gotten a lot of help from testers, translators, designers and copywriters along the way, almost all development has been done by me to date. I've struggled to get everything done from year-to-year and it is also really risky being the only one doing this, eventually I won't be able to commit the amount of time I currently am to these projects. My greatest struggle yet has been to actually get developers, or aspiring developers involved for any length of time.
I plan to start with a very brief overview of the languages, architecture, and repositories involved. From there I'll help attendees go through the steps of downloading and installing dependencies. While we're working I'll go into more detail on the systems and respond to questions. We'll get as far as we can with the time given. There is likely a lot to be improved in the way that we currently do things so please feel free to speak up and make suggestions as we go.
Applications and Libraries
We will go over these in more detail during the workshop, but here is a brief overview of the repositories that we work with:
This is the repo for the site that you're on right now.
The workbench is the tool that we use for editing copy, translations, and previewing screenshots of bikebike.org. We will also eventually use it for bikecollectives.org and include tools for deploying code, viewing error rates and statistics, and any other development related features we dream up. It is accessible at workbench.bikecollectives.org.
This will be the repository we will use for bikecollectives.org, it currently has the iteration that I started working on last year but I intend to start again from scratch.
This gem contains models and any other common code that will be shared between bikebike.org, the workbench, and bikecollectives.org.
This is our custom i18n library, it is mainly used so that during integration testing we will collect data on what translations are used and where. This data is then provided to the workbench so that translators and copy-writers can understand the context of each translation and provide meaningful copy.
This is our common front-end library, it is designed to reduce the load on browsers by analyzing the user agent and collecting data from caniuse.com to deliver the minimal amount of CSS and compatible HTML. The idea was experimental when I began work on Bike!Bike! and I'm now worried that it is too complex moving forward, we may need to strip it out but we are also very dependent on it.