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 š)
Pinpoint
š 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:
Inertia
āļø 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.
Rocket 2
š 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.
Bounce
š 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.
Room8
š 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!
Soil TopARgraphy
š± 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!
Internado
šŖ 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 š)
Mimic
š¬ 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.
Mikado
š§³ 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!
Design
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
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!
Other Shenanigans
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. š¬