Creative-Collab: Open Source web app for creative collaborative writing

Photo by "My Life Through A Lens" on Unsplash

For the assignment in my Open Source Development course, students are supposed to start and develop an open source project from scratch. It’s absolutely up to students what the project is about and what technologies they want to use for development.


I jumped into the project called Creative Collab. Here is a description of the project:

A creative collaborative writing app.
The goal is a real time creative writing collaboration ‘game’.
Each participant takes a turn to add a limited amount of text (ie: 100 words max) to write a short story. Each story will have a maximum of 10 writers and a minimum of 2 who can be anonymous or invited friends. Once each story is finished, it can be exported as a pdf or doc.
(Retrieved from Creative Collab documentation)

Tech stack 🔨

Tech stack

We chose React for front-end of the project. During the initial research, we found a framework called boardgame.io, which bring turn based functionality for the React app. After investigation, we decided to use this framework as core of game logic.

Organization

I think it’s worth noting that Creative-Collab repository is organized very contributor-friendly. There are README.md, CONTRIBUTING.md files that help developers to start contributing as quickly as possible. All issues have relevant labels and some of them also have mentors assigned:

https://github.com/Mera-Gangapersaud/Creative-Collab/issues

There is also Slack instance with project development discussion.

Dev ⚒

Apart from project set up (add eslint, prettier, travis CI), the first step was to implement the tutorial from boardgame.io documentation. It was done successfully.

I took an issue that required to add text editor to the web app. I did some research and compared different ready-to-use text editor React components. I decided to go with package called React-quill which implements a text editor within a React component.

I installed the dependency to the project. Then, I created a simple web page with two text editors and one container that is supposed to display a result story of those two text editors.

This Pull Request doesn’t implement any logic for boardgame.io; it added an initial UI prototype for further development.


Please feel free to leave any feedback and ask questions about the project.

I also encourage you to contribute to the project! You can find all the details in the project’s GitHub repository.