Meet Lucas, Katherine, and Oliver! They are incoming juniors at Washington University in St. Louis, studying computer science.

As part of their curriculum, they were supposed to have a practical internship lined up for the spring or summer semester this year, but due to the COVID-19 pandemic, these opportunities fell through the cracks. The same happened to many of their peers, prompting Douglas Shook, an adjunct instructor at the university, to set up a summer course called “Software Engineering Workshop” where they can get credit for contributing remotely to an open-source project.

One of the students in the course learned about Terrastories and suggested it as a potential project, and Lucas, Oliver, and Katherine were motivated to contribute. Over the summer, they worked on resolving a number of issues and building new features for Terrastories, guided by Terrastories steward Ian Norris.

We did an interview with Lucas, Oliver, and Katherine about their experience working on Terrastories, which we share below. Additionally, we provided some quotes from their final presentation to the class. Our heartfelt thanks go out to the three of them for their amazing contributions!

Please introduce yourselves 🙂

Lucas Alcantara – I’m an incoming junior to Washington University at St. Louis, and double majoring in systems engineering and computer science. And I’m here for this summer project that I’ve been really happy with.

Oliver Hamuy – I’m an incoming junior, and I’m studying comp science with a minor in electrical engineering and economics. I’m here because of a summer opportunity to work on an open source project, and I was able to choose Terrastories, and I’m really happy with it.

Katherine Henry – I’m also a rising junior, studying comp science and math, and hoping to get into artificial intelligence and machine learning. I’m also here because of this summer opportunity. I had an internship set up that I lost due to COVID, so WUSTL reached out to us with this opportunity. I ended up with Terrastories and I was also really happy with the whole experience.

So, what drew you to Terrastories?

Katherine – So, someone in the summer class, taught by Douglas Shook, suggested Terrastories as a potential project.

Oliver – and then we were allowed to choose between any of the potential projects. We would list our three choices, and we decided that Terrastories would be one of our top choices.

Katherine – I picked Terrastories because I personally thought it was an interesting initiative. I think that the potential loss of oral traditions is an underrepresented issue. And I also liked that there was a educational component to the application, like building a curriculum for students.

Oliver – I just found it really cool that you guys were working with indigenous tribes in the Amazon and preserving these oral stories, because I am very interested in knowing what they are talking about, and I find it a very intriguing idea to put that all on a page and be able to explore it.

Lucas – Overall, when I saw the Github page and looked at the website, I liked how overall organized all the coding was, and I also appreciated that you were trying to be beginner friendly, which was very welcoming.

…Terrastories may seem like any other social media platform. However, Terrastories’ map visuals are customized in ways that allow communities to not just preserve their stories, but also the lands they are attached to. In response to decreasing water quality in the area, Terrastories is being used by the Haudenosaunee of the Six Nations Reserve to combine scientific water measurements with an indigenous vision of their land, plotting the actual site of their stories on maps. Since the Haudenosaunee have relied on oral stories for such a long time, Terrastories is essentially the only concrete evidence of what land belonged to the Haudenosaunee.

As for actual users of the app, the curriculum feature provides an excellent method of presenting stories in a purposeful way. Teachers can design a curriculum such that the order of the stories flow in an intentional manner to align with classroom lessons. Tour guides may also use the curriculum feature to order stories such that they match up with locations or visuals of a tour. Of course other users of the app may just be curious people looking to learn, possibly about their heritage or the traditions of their origin. Indigenous people, possibly by use of the offline feature, may also use terrastories to hear their family members and friends tell their stories or to learn about surrounding tribes…

What did you like the most working on this project?

Katherine – I liked how communicative the team was, and very supportive, and as Lucas said, very beginning friendly. You guys were super welcoming when we started out. When we were just researching the project, there were links to the #terrastories channel on the Ruby for Good Slack which was really nice, which we joined and when we reached out we got very quick responses.

Lucas – I have to agree with Katherine, I knew it was beginner friendly, but I wasn’t expecting the active collaboration that there was on a daily basis. The Slack channel is very active, there was always something to look at on the Issues tab of the Github, and there are always suggestions on what to do next.

Oliver – I really enjoyed working on the presentation side of things, the user interface and how people actually view it, because I’m a very visual and design kind of person, so I enjoyed working on that. I also really enjoyed working with the leads. They were so helpful and welcoming, and that was a lot of fun, so I enjoyed that part.

What were some of the issues that you worked on, or features that you built?

Oliver – We worked on the administrative user interface, updates to the readme files, online video embedding, and then a lot of bug fixes like stories and images not rendering, changes to the marker popup layout, the language picker, and the CSV importer.

Lucas – It started off a bit slow, with bug fixes. One of the first ones we did was a simple bug with geographic coordinate boundaries. It was that you could edit or create a place with latitude and longitude values that exceeded the bounds of normal geographic coordinates. So, you would have a place with 1000 degrees North and 1000 degrees East, which is obviously not valid, so that was the first thing that we worked on.

Katherine – And also there were a lot of learning experiences at first, especially getting comfortable with Github and the languages that Terrastories is written in, like Ruby on Rails and React. So there were definitely some areas where we first had to learn about before getting hands on with the code.

PR request fixing a bug where images were being rendered as audio.

So, what were some of the major things that you learned from working on this project?

Katherine – Definitely getting comfortable with Github and Git commands. It’s something that’s really important and I personally did not have a lot of experience with. Over the course of the summer working with Terrastories, it was very beneficial that it was on Github and so a very important learning experience, something that is used so much in the computer science community. And then the languages – Ruby on Rails and the Ruby React gem. Learning React was another thing that we worked on this summer, where we read guides and made practice apps to get familiar with how it works. And to be able to contribute to the project, we had to learn the format of the files and how Terrastories is laid out, which is pretty generic to how a Ruby on Rails app is laid out, so that enabled us to learn a lot about Ruby on Rails.

Lucas – Adding on to what Katherine said, I think that none of us actually had done a source project before this. So, even though all the coding and learning about Github was all really helpful, I think that the most humbling we learned was that… when you’re taking all of these college courses, the professors deal out all these assignments really quickly – like, make this data structure, make a hash map, now make a minimum heap tree… and you get this idea that coding is all this really fast typing, and dealing out these things and hoping you do it right. But Terrastories really showed us that it’s a lot more than that. It’s a discussion and conversation. And even though it’s really growing right now, it’s still a collaborative thing where you need to have patience.

Katherine – Yeah, I totally agree, and I think that it really gave us a good introduction to what being a developer is really like, as a more realistic version than being in school. Like Lucas said, there is a lot more discussion than I had anticipated.

…Many of our contributions were within the Terrastories repository, but a lot our contributions were abstract. Terrastories consistently had weekly meetings, and it was our intention to attend as many of these meetings as possible. By attending these meetings, we were able to give our ten cents on other people’s work, how they could be altered, and how the application could be improved overall…

Troubleshooting issues in the Ruby for Good #Terrastories Slack channel.

What do you think would be a cool feature for Terrastories that we haven’t built yet?

Lucas – this is not so much a suggestion, as a fascination for me about the idea of Terrastories; at its base, Terrastories can kind of be related to the idea of standard social media app. You post stories, and images, and so forth… but, there are two real things that make Terrastories unique from other social media platforms; first, is its complete dedication to being linked to the locations of those stories. And also, the ability for Terrastories to go offline, that it’s basically an offline platform for communicating and presenting stories – there is no real ability to do something like Facebook or Instagram offline. And I think that it’s a really interesting way to go about doing a social media platform, something I hadn’t thought about until Terrastories presented it to me. And I think it’s an intriguing idea and that there can be more to it.

What was the remote coding in a team experience like for you?

Oliver – A lot of the time we would be working on our own, doing our own research, our own practice apps with the new languages, but we were also schedule meetings within our team, and work on our code altogether. So, one of us would screenshare and we would all try to figure out what the problem was, to see if we can make a new improvement, make suggestions, and then implementing those changes.

Katherine – Right, and as I said earlier, the team is very communicative, so if we had questions, we would post them in the Ruby for Good Slack channel and we would get answers pretty quickly from the Terrastories team leads or just anyone in the community. So, I felt like that made the remote workflow work pretty well.

Lucas – I had initially thought that working remotely would have been an obstacle, but as the summer had progressed, I realized that being able to work at any place at any time was really liberating for all of us. If there’s any profession that’s going to be better done online, on a screen, it’s going to be computer science and development, so it shouldn’t have been surprising that it would have been so easy for us to work together online in retrospect.

…The Media Links contribution was suggested by the lead contributors for us to tackle. The contribution would allow users to attach URLs of videos to stories. On the main page of Terrastories, these videos would be embedded into the main body of the Story, allowing the user to watch these videos without exiting the application. There were a lot of moving parts to this project. To organize the process, we divided the project into three discrete tasks, making the entire procedure much more manageable. Each step took on average 3 hours working together on a zoom meeting, not including individual research time…

Do you have any advice for us as a volunteer-run, open source project?

Lucas – The times we were most able to accomplish things were when we were on a Zoom chat. For example, the Sunday pair-a-stories meeting has been really, really helpful. The hardest part of a Zoom chat is scheduling one, so I think that it’s best to just host them on the regular per a defined schedule as much as possible. I think that if you were to have more meetings – even if it’s just for 15 minutes, to check in and see what others are doing, or get advise – it would make the workflow go a lot faster.

Katherine – I totally agree and I think that similar to how pair-a-stories is on Sunday, it might be helpful to have a scheduled meeting during the week so people can plan around that at differnet times. But I totally agree that the Zoom meetings are the most productive times working on Terrastories, because it’s just such easy communication. It might also be helpful if more people came to the pair-a-stories, and maybe if everyone is working on a specific thing, they would at least update weekly on how things are going.

Oliver – I also have a comment on the actual meetings. From my experience, our meetings were sometimes very productive, but other times we were kind of rambling or speaking about other things and not making the most efficient use of time, so adding structure and having an agenda to help us get through things in a certain amount of time would be a good addition. Also, I think the meetings definitely help with motivating people to continue working on Terrastories, and keeping us updated on each other’s work.

Lucas – I would go further. The most work that I got done was working online and sharing my screen. Before this project, there was a stigma in my mind that I shouldn’t share my code with other people. I mean, obviously, plagiarism is bad, but to see someone else’s code and to have someone else look at your code on your screen and say, yeah – try that out. It’s hard to press a button and say, yes, let’s compile that if you don’t have that second person saying, yes you should compile it. And then you just keep on working. I have no doubt that if I worked alone, I would eventually arrive at a solution and maybe even have similar code. But having that assurance of having Oliver and Kathy with me to try that line of code out, made the process so much faster, and much more sure of myself.

A Sunday pair-a-stories session on Zoom.

Do you have any advice for other junior developers looking to get involved in working on Terrastories?

Katherine – I would recommend not hesitating to reach out, and introducing yourself into the community, rather than trying to slide in unseen. It’s very beneficial to throw yourself out there and let people know that you intend on contributing, because people are very welcoming and helpful.

Lucas – That’s pretty much what I was going to say. The first two weeks of this project were basically me, Oliver and Katherine just kind of texting back and forth saying, “okay, so, what do we do?” Nothing really happened until we joined the Slack and introduced ourselves. If you do that, you are basically already halfway done through accomplishing something.

Katherine – On top of that, I would say going to the team meetings because it’s a lot easier to contribute when you’re collaborating instead of working on your own. Which plays in to introducing yourself and putting yourself in the community rather than trying to contribute on your own.