UBC Launch Pad Year in Review (2018-2019)
🐒 the story of two semesters of student hackery
Launch Pad is a student-run software engineering club where students form team to develop a project from ideation to (hopefully) completion over the course of several semesters. 🤖
When working on projects like this, it’s easy to forget how far you’ve come. Unlike a hackathon, where you spend 24 to 48 hours to hack a small app together, Launch Pad projects are the product of months and months of continued iteration by teams of 4 to 8 developers and designers (and sometimes more!), and during this process, it’s easy to feel like you aren’t making much progress, especially if after a semester your project still feels like a barely functioning, buggy application. 😢
However, juggling full university course-loads, friends, procrastination, job searches, and development of a Launch Pad project is no mean feat, especially when many of our members join us with very little experience. Now that the school year is wrapping up, I think it’s a great time to take a moment and celebrate everyone’s accomplishments! Making things is hard, and doing it with a team is harder — it takes time, you make a lot of mistakes along the way, and there is a lot to learn. It’s awesome to see how far everyone has come in this brief span of time, and I’m grateful to have had the opportunity to meet and work with so many enthusiastic and talented peers, especially those in our graduating class of 2019.
So here is a quick UBC Launch Pad year in review! 🤗 Each section will be pretty light on the specifics of what each project aims to do, but if you’re interested check out the linked project repositories!
(Unfortunately some of these summaries are a bit brief if I didn’t get to work very closely with the team, and also because I got a bit lazy 😓)
📊 Versatile applicant management for any organization
Pinpoint is a tricky project. We opted for a stack none of the team were familiar with, and our choice of database — DynamoDB — was something we all struggled to get a grasp on. We also unfortunately faced issues with members disappearing as the semester went on. As a tech lead I also failed a little here I think, by setting up the project in a way that encouraged people to work on small components of the codebase (we didn’t end up working fast enough to justify this), and being a little too loose with our project specifications, which lead to more confusion than the productive brainstorming I had imagined 😅
That said, the team at Pinpoint put together 44 pull requests without me, spanning 9 contributors and an average of 31 commits each. We didn’t get a fully functioning project in the end, but we got pretty close — most of the pieces are there thanks to the hard work on the project’s most active members, and I’m confident we can get it to a usable state. Everyone also got the chance participate in designing the user experience with our designers.
A member of Pinpoint (Srijon!) also produced a fantastic piece of artwork the night before our last demo that reflected a problem we had quite nicely:
✈️ Effortless, self-hosted continuous deployment for small teams and projects
Inertia is UBC Launch Pad’s largest codebase by far, spanning over a year of work by over 15 contributors before this semester’s team even got their hands on the project. A lot of it was written by me, and by that I mean a good chunk of the codebase was less than stellar.
Getting a pull request in for Inertia can be a bit of a daunting task — with over 13,000 lines of code across 36 “packages”, the project’s scope is very difficult for inexperienced members to manage. Inertia also depends on pretty intimate knowledge of Golang and Docker, and the problems it aims to solve don’t have particularly straight-forward solutions. The project is also surrounded by a lot of intimidating tooling, leveraging custom test environments, some code generation tools, and more.
So I’m super proud that most of this semester’s team managed to learn a bit about the technologies that Inertia leverages, stay engaged throughout the development process, and contribute pull requests of their own that will allow us to build more features for Inertia in the future! As a lead I’ve always struggled with onboarding members for this project, but I hope that everyone in the team got something out of their work.
Inertia Usage Guide
Many of our projects rely on hosting providers for deployment. Unfortunately we frequently change hosting providers…
✈️ Effortless, self-hosted continuous deployment for small teams and projects - ubclaunchpad/inertia
🚀 Slack bot, team management, and onboarding system for UBC Launch Pad
Internally at UBC Launch Pad, team creation, management, and onboarding is managed by a bot we call Rocket. The initial iteration of the bot has proved a bit difficult to build on, and quite buggy, so this semester a team set out to rebuild it from scratch using a new tech stack, best practices, well-defined documentation, and a better architecture.
The Rocket 2 team has proven to be one of this year’s most active teams, accumulating almost a thousand commits and making significant progress laying the foundation for the future of Launch Pad’s beloved Slack bot.
🚀 Slack bot, team management, and onboarding system for UBC Launch Pad - ubclaunchpad/rocket2
🏀 Bringing people with common interests together
Over the course of the year the “Bounce” team has certainly come a long way. Most of the team started with limited knowledge of web development and the languages, tools, and frameworks we were using to develop our application (Python, React, Postgres, and Docker).
As is often the case, the idea was simple, so we figured the implementation shouldn’t be that difficult. Of course, we were mostly wrong about that.
— Bruno, Co-President and “Bounce” Tech Lead
In an attempt to flatten the learning curve, Bruno (the team’s lead) tried an to get each member to start working exclusively on one part of our project — either the frontend or the backend. However, as time went on he realized that developers would often design their features without a true understanding of how they would be used by other components of the project simply because they’d never worked on other components of the project.
Although they didn’t achieve all of their end goals, they still wrapped up the semester with an application that was at least partially complete, and made two impressive demos during the semester that demonstrated their progress. And at the end of the day, what matters is most is what you learn, as Bruno puts quite aptly:
Most importantly, however, I am confident that each member of the team acquired valuable high-level web development knowledge and gained familiarity with industry standard tools and languages that they’ll likely use in the future.
🏀 Bringing people with common interests together. Contribute to ubclaunchpad/bounce development by creating an account…
🏠 A roommate organization mobile app
Room8 is a roommate organization platform on Android. The app will allow roommates to organize themselves into a group and assign tasks to each other. The app itself will assist them in creating a schedule and rotating tasks for each roommate.
Being a team thats mostly made up of first years, it’s pretty good that people came and taught themselves a new platform and also helped each other grow.
— Sam, “Room8” Tech Lead
Check out the project and some screenshots in more detail on their GitHub repository!
🏠 A WIP roommate organization mobile app. Contribute to ubclaunchpad/Room8 development by creating an account on…
🌱 Android app that teaches soil science students in APBI 200 through augmented reality (AR)
Soil TopARgraphy is an app that allows users to view topographical distribution of different soil types through an Augmented Reality (AR) terrain. It was developed to help students in the UBC’s APBI 200 — Introduction to Soil Science course and other soil-related courses, learn about the effects of topography on the formation of different soil types in an immersive and visual manner.
Using augmented reality, different soil orders are shown within one real-life terrain across different parts of topography. We chose an area just north of Kamloops, British Columbia as an example of the terrain model since the region is characterized by a great diversity of soil types.
More details about the app is available on the project website. Soil TopARgraphy is also available on the iOS App Store and the Google Play Store — links below!
Soil TopARgraphy — iOS App Store
The Soil TopARgraphy phone app allows users to view topographical distribution of different soil types through an…
Soil TopARgraphy - Apps on Google Play
With the Soil TopARgraphy app, which allows viewing and manipulating a terrain model, APBI 200 students will learn how…
seedling: Android app that teaches soil science students in APBI 200 through AR - ubclaunchpad/soil-topARgraphy
🌪 Find Internship Opportunities
Internado (arguably) had a bit of a head start on the other teams, with 10 relatively experienced student web developers. They were one of the first teams to deploy a website you could actually visit, so getting started clearly wasn’t an issue: https://internado.ubclaunchpad.com/
That being said, several parts of our tech stack were new to the team. Everyone had very little experience with PostgreSQL, Semantic UI, and Docker, so related development took some time. They also faced issues with some of their decisions:
There are a few parts of our process we could’ve improved. First, the eternal problem of feature creep. There are still a few features we haven’t managed to implement. We also chose to go with a microservices architecture, dividing search and auth into separate services because we thought we’d add even more additional services later. It turned out to be unnecessary — we didn’t need any more services — and made deployment harder.
— Sherry, Co-President and “Internado” Tech Lead
However, the team was great about sharing learning resources and working together and they were able to build the project relatively quickly while still allowing everyone to learn new skills, which was very impressive! Great job everyone! 👏
(though as Sherry pointed out to me, y’all could use a few more tests 😉)
🌪 Find Internship Opportunities. Contribute to ubclaunchpad/Internado development by creating an account on GitHub.
💬 Mimicking text for great fun and delight
Mimic was this year’s only machine learning project. The team aimed to build a project that was a mix of experimenting with machine learning techniques, data wrangling, and developing a service. Mimic mimics the style of a given corpus to generate text.
They ended the semester with a neat demo that demonstrated how Mimic could generate text based on a corpus of Shakespeare plays or Trump tweets, which was pretty neat! Check out their repository for more details.
💬 Mimicking text for great fun and delight. Contribute to ubclaunchpad/mimic development by creating an account on…
🧳 Organize your next adventure
Mikado is this year’s only iOS team. Unfortunately, delays in our interview process, bad timing with various holidays, and Apple’s WWDC sponsorship applications meant that the team did not get very far with the project. There’s a bit of code and concepts in the repository, however, and hopefully the team will be back next semester to tackle the idea again!
🧳 Organize your next adventure. Contribute to ubclaunchpad/mikado development by creating an account on GitHub.
This year, we decided to recruit a larger team of designers who could work together and help each other out (since in the past, designers have simply been embedded in the developer teams and left on their own 😢). Many members of the team joined us without a strong background in UI/UX, and most have never worked in design as a team before.
Despite the hurdles, the new design team did some awesome work this year, ranging from learning to use the design tool Figma, branding updates (see above), marketing material and banners for events like Project Hub, designs and assets for projects with a user-facing interface, an amazing new sponsorship package (our previous one was a simple Word document…), a new gang sign, and more! 🎉
A huge part of this is thanks to Jenny, the super-talented design lead and incoming co-president of UBC Launch Pad! 💪
Strategy at UBC Launch Pad has always been a tricky role — as a club, we are a bit of a tough sell for potential sponsors, since we focus on providing a long-term and supportive learning environment that doesn’t draw the same sorts of numbers and audiences that (for example) a hackathon does. Given what they had to work with, this year’s strategy team did a stellar job, streamlining their workflow, documenting their progress, and reaching out to potential partners. They also did a lot of great work in gathering statistics and potential selling points for the design team when creating the new sponsorship package.
Thanks to their work, we were able to push for a number of new initiatives this semester, such as sponsored team lunches and events like Project Hub!
We do lots of other stuff too! Check out our Instagram, where we post some of the other fun activities we do together, such as competing in Storm the Wall and the Vancouver Sun Run, going to the CSSS cruise, board game nights, and more!
We do a round of recruiting at the start of most semesters — keep an eye out on our social media if you are interested in joining us! Also feel free to get in touch by coming to our events or shooting a message on our Instagram and Facebook profiles. 📬