What is GoGEM?
Every Year for Every Team: Wiki Freeze is coming way too fast. The whole iGEM year lies behind. All the great research a team did is now being examined and presented on the wiki. To gain attention and to have a real impact with a team’s project the wiki needs to present the work really well. Therefore, iGEM Teams are putting a great focus on their wikis. This normally includes long and exhausting weeks before the wiki freeze. On top on writing texts all team members need to learn HTML and how to implement content on the wiki besides designing figures, experimenting in the lab etc. This can be overwhelming as visible in the multitude of wiki freeze memes. Additionally, the provided environment is very limiting without code completion, no syntax highlighting, and a small window making it hard to read. (Figure 1)
Fortunately, this belongs to the past.
We decided that we had to find an alternative if we wanted to present a decent and innovative wiki at the end of the year.
And so we did: We wrote GoGEM.
GoGEM is a tool that allows us to utilize WordPress, a Content-Management-System that powers nearly 43% of all websites,1 and its Gutenberg Editor which makes complex website design as simple as the drag-and-drop chaining of predefined blocks (Figure 2). This ease of use enables our team to focus on the provided content, and not on fighting with HTML, CSS, and JavaScript.
Also, did you ever have to change your whole reference numbering because you forgot a paper? No? Well that is because automatic bibliography management is a thing since well over ten years. Now finally iGEM Teams can use it too! The Reference Manger, which is part of a plugin,2 can be seen on the right of the WordPress images (Figures 1 & 2)
The styling is enforced through a custom written WordPress Theme which we could develop easily using an abundance of information on the topic.
After that, the upload of the whole wiki is just a single command (Figure 3). GoGEM does take all the necessary steps to present a fully functioning copy of the wiki on the iGEM Servers, even preserving your media files, links and structure. All of this is done compliant to the iGEM requirements of all content being available on their servers and no external assets being used.
How does GoGEM work?
GoGEM is written in GO, an expressive, clean, and efficient language that has originally been developed by Google and is now open-source. This choice was made on base of the facts that GO is pre-compiled, meaning that it can produce an executable file which can be run directly without having to first install an Interpreter, like Python; As well as it being relatively readable and the documentation being well maintained and clean. This helps everyone who wants to understand and/or modify the source code, even if one has never programmed before!
GoGEM is broken up into five pieces, four of which form the actual software, and one that is based on its own development branch: the Application Programming Interface (API), which is responsible for the communication with the iGEM Servers.
The API has been inspired by the now depreciated igem-wikibrick from iGEM Virginia 2018,3 which in turn was dependent on the no longer supported igemwiki-api of iGEM Toronto 2016.4
Because of the relatively convoluted code, and the difficult bug hunt we decided to write a tool from scratch which is loosely based on those two projects.
The separation of API and GoGEM makes repurposing the API for other use cases feasible, which in turn could lead to other great projects from the community in the following years.
The separation into modules inside of GoGEM enforces a clean structure that maintains a well-defined separation between tasks. GoGEM is divided as follows:
- The Command Line Interface
- WordPress converter
- Local file handling
- Session Handling
This ensures readability, maintainability, as well as easy augmentation capabilities through third parties which have never worked with GoGEM before.
With GoGEM and WordPress wiki development becomes what it never was: a delight.
How to wiki with GoGEM
But wait! There is more! We not only wrote the software that allows you to utilize WordPress as a platform, but also a guide that shows how you can create a wiki like this yourself. The most difficult thing about the wiki is to get it started, and we hope that we can help you with this process. The guide describes not only how to setup a local WordPress instance but also how you can go about starting the development of your own theme, which plugins could prove useful and how to utilize the capability’s of your browser for debugging (which you will need a lot of). Oh and of course how to upload your page to iGEM with GoGEM!
We believe that this document provides an enlightening read, even if you do not plan on utilizing WordPress or GoGEM.
References
- 1. Q-Success. Usage statistics and market share of WordPress. W3Techs. 2021 Oct 14 [accessed 2021 Oct 14]. https://w3techs.com/technologies/details/cm-wordpress
- 2. Sifford D. academic-bloggers-toolkit. GitHub. 2019 Oct 25 [accessed 2021 Oct 14]. https://github.com/dsifford/academic-bloggers-toolkit/
- 3. Culfogienis D, Wu G, rytaylor. igem-wikibrick. GitHub. 2018 [accessed 2021 Oct 14]. https://github.com/Virginia-iGEM/igem-wikibrick
- 4. Mazzitelli J. igemwiki-api. GitHub. 2016 [accessed 2021 Oct 14]. https://github.com/igemuoftATG/igemwiki-api