Creators: Augusto Mota Pinheiro, Kngfu & Dawson College
Start Date: 04/2021
End Date: 09/2023
Medium & Tools: Unity | Flutter | Express | NodeJS | Docker | Miro | Asana | Github
Back in April of 2021, Reisa Levine, a teacher in Media Production at Dawson College, reached out to me with an exciting opportunity! She recently received a grant from the federal government to fund her newest project: an augmented reality app that showcased different cultural and historic parts of downtown Montreal.
Wanting to create an educational experience above all (both during development and use), with the help of Kngfu, a Montreal-based creative company, and myself, we've been creating a virtual reality experience that will enable users to explore the city and its history.
Created in Unity, the app will be available on the Play Store and Apple App Store.
Originally, I was tasked with developing the app following the designer's mockups and specifications (examples above).
I implemented different features like location based audio and semi-interactive map, the entirety of the media UI on recognition, making scene transitions, localization (between English and French), loading of cloud-stored media (photo, video, audio), implementing a cache system, image gallery on information screen, among other things.
As I gained more confidence, I started having more autonomy in the team and in the development pipeline as well as in contributing during meetings. Not only did I work on the main app, I also introduced 2 important initiatives: an ingest tool (which started with a Windows only application and became a web based Flutter application) so that non-tech-savvy members of the team could upload media and content and external documentation of every script in the main app and in the ingest tool. (both pictured above)
Thanks to my now expanded autonomy and confidence, as well as having introduced these extra resources, my role also expanded into a mix of DevOps, Software Development and Product Design.
On August, we launched the app on the Play Store and the App Store for a quiet release, principally for Reisa Levine's class, however we continue working on it to improve it as most as possible. Our goal is to eventually release it publicly and possibly make the structure of the app open-source!
All of that not accounting for the improvements on the ingest tool: cleaner UI, a permission role-based access system, manual edit (and backups) of the locations through JSON files, help links for more information, tooltips everywhere, re-orderable lists for image galleries, rich text support, pre-upload field validation and a whole lot of quality of life improvements! It has become a piece of software on its own and I'm quite proud of what it has become :)
One of the biggest changes I implemented before release was a fully custom storage API to replace Firebase Storage (which was not working well for us) written with Express and hosted on a new Docker server implemented by me. The other, was creation of 2 separate environments for content: a "dev" space where content could be tested without being publicly available and a "prod" space where content was live and public for all.
What I Learned & How I Could Be Better
Since this is my first time working on a big team project, there was a lot to learn!
The most important things were:
- Achieving milestones together is much more rewarding than by myself.
- However, having everyone in sync and on the same page can be quite the challenge, particularly if everyone has distinct roles.
- Expressing your thoughts about an idea or concept should be a priority in communicating.
- Finally, even if it's difficult, patient communication (through planning boards and other tools) is key to success, specially in larger teams.
There are also things that I would've done differently, like focusing less on the tiny little details and more on the big picture. It's mostly for myself, so that I can have healthier work/life balance.