Confetti Cannon

A specification document, wireframes, and user flows for a remote online notary service.

Project Overview

The Confetti Cannon is a branded remote online notary (RON) platform intended to be used by any small businesses that need to facilitate secure, official remote document signings. This project isn't (yet) a functional application; instead, this is intended to showcase some of my skills as a project planner and designer. I created a specification document, wireframes, and user flow diagrams, in order to pave a clean foundation for a team of developers to implement.

Technologies Used

    Jekyll
    Confluence
    Figma
    S3
    IAM
    RDS
    Jitsi
    EC2

Key Features

~ I used Confluence to layout the user flow for each functional aspect of the application.
~ This helps to make sure that any dev that joins the project can jump in and start building.

Project Reflection

This project helped a lot with teaching me how to use React, as well as visualization tools like Figma and project management tools like Confluence and Jira. It's a pretty beefy undertaking in concept, and at the time I started working on it, I wouldn't have considered myself as capable of pulling it off as I am now. I'm pretty prout of how it's turning out so far, though!

Here's how it all started

After a pretty killer presentation I gave at a company summit in September 2022, I was determined to burn through a ton of goals that I had set for myself. My title had recently changed to Web Developer, and the first item on my list was to transition all of the infrastructure that I could to the cloud. I was so ecstatic to finally start using my coding skills to make things that could potentially help a ton of people. I originally prototyped it back at the tail end of 2022, tinkering with AWS Amplify to see if I could get the functionality I was looking for out of it.

Another goal of mine for the company was to start replacing as many expensive, repackaged third-party solutions that I feasibly could; I focused on trimming off the unneeded or unused services, and seeing where we could save with existing services. I also wanted to avoid encumbering us with the tech debt of building or maintaining our own (probably worse) versions of those same services. But there was one that it seemed like we couldn't get rid of, that was really putting a wrench in things - the RON platform. I originally prototyped it back at the tail end of 2022, tinkering with AWS Amplify to see if I could get the functionality I was looking for out of it.

The CEO approached me in early August 2022 to see if there were any possibility of replacing the RON platform with our own, proprietary SaaS that we could also market to other businesses. I basically said that anything is technologically possible, but the planning, development, and sheer amount of work hours required for that would be astronomical. Nevertheless, (for better or worse) we decided to try it anyways.

What I thought I should do

I originally prototyped it back at the tail end of 2022, tinkering with AWS Amplify to see if I could get the functionality I was looking for out of it. While it had a bunch of bells and whistles to work with, I was still pretty early on in my React journey, and I would have a lot to learn if I was going to actually start trying to build something like this. I knew that I was pretty in over my head, so I talked with the CEO again to set up a game plan for how I was going to get this on its feet.

We ended up turning the RON platform into a backburner project; every month, I would dedicate a few days of time to its research and development. I would spend a ton of time learning and documenting the tools that would go into building something like this, which oftentimes felt like I was accomplishing nothing (because of the relative lack of code-writing), but turned out to be quite the opposite. Instead of stumbling my way through building shoddy, buggy components, I spent time reading about what WebRTC was, how to work with pdfs in React, how to grant single-use temporary credentials to document access and prevent fraud, all kinds of stuff.

I needed to make sure that this thing could compete with enterprise applications, and the only way to do that was learn how enterprise builders think. I needed every resource I could possibly get my hands on.

What I did

After a year of launching as many services and automations for the company as I could (Confetti Bits, Celebrator Creator, etc.), I felt that it was time to approach building the RON platform again. I had another chat with the CEO to discuss next steps, and she put me in touch with a team of developers in Ukraine that would be willing to contract the project.

It was then at the end of November 2023 that I had had my first real experience in a (virtual) room with other developers. At the time of writing this, I remain the sole developer on staff at my company; prior to that meeting, every project, every automation, every line of code, was known only to me, my keyboard, and my rubber ducky.

I was losing my shit after this meeting. I had been translating low-level tech concepts and project breakdowns into english for several years at that point; it felt like I could finally speak in my native language again.

After the consultation with our new tech partners, I got to work building the specification document and the resources that you see here. I can't post everything, but I can at least show you some of the work that I put in. There's a ton more where this came from, and I'm sure it will continue growing even beyond that.

What happened after

We're all caught up; I'm still working on it!

What I learned

An attempt at quantifying the amount of things I learned from this project was made here, but it's hard to accurately measure. I learned a ton about React, TailwindCSS, Figma, a whole pile of AWS services, and more APIs than I care to recount. I learned about working on several different Linux distributions, deploying and running Docker containers, running facial recognition machine learning models, setting up a TURN server for WebRTC, data structures and algorithms - just a truly diabolical amount of information from so many areas in technology and computer science. I even started taking an online calculus course to get better at implementing machine learning concepts.

While this project is still in development, I've never felt more capable and confident in the direction of a project.