Inspiration

For many businesses and restaurants, the products being sold and the people behind the POS are the reason customers keep coming back. Employees create memorable experiences, help customers find what they're looking for, and even show customers products they didn't know they needed before then. They're the backbone of growing a business, but now, more than ever, it's hard not to notice the hiring struggle and the toll it takes on a business's employees. Restaurants and bars with "Now Hiring" signs on the door and employees inside who haven't had a chance to catch a breath since their shift started. The retail worker helping three customers find what they need while answering the phone. These people are rockstars, and deserve to have their hard work highlighted and rewarded!

What it does

Highlight My Team provides Square business owners and their teams with a platform to celebrate and reward each others' efforts using resources owners already have- Square Team and Square Loyalty. Owners create rewards in Highlight My Team that they and their team can use to highlight one another- whether it's for covering a shift or crushing sales to always going above and beyond. These rewards have point values that directly tie back on a 1-to-1 basis with the business's Square loyalty program. This means team members with loyalty accounts will be rewarded not only when shopping at the business, but also for all the hard work they put into it!

How we built it

Highlight My Team is built using Spring Boot and Angular, as these are the tools I use daily in my professional life. It also heavily uses the Square Java SDK. Authentication is handled using Auth0, and hosting, both site and database, are done with Heroku.

Challenges we ran into

There were a couple challenges I faced with this project.

The first challenge was time. I found out about this hackathon fairly late into the game- at the beginning of November. Between then and now, I also missed a weekend of coding because of a trip planned months ago.

The second challenge was dealing with a bunch of newness- new to hackathons, new to implementing OAuth on my own, new to the Square APIs.

Facing these two challenges taught me a lot:

  • Focus on your core functionality. Does a full OAuth2 login experience provide more value than the items on your feature list?
  • Don't take on more unknowns. Is a mailto link good enough to start, or is implementing an entire third-party email service you've never used before absolutely necessary? (Hint: I first tried the latter and failed)
  • When time is of the essence, pick the easy route. Is writing a bunch of boilerplate worth it when there's a starter app available? AWS is cool but without setting up an environment and CI/CD can you get a back-end, website, and database deployed from your git repos with two CLI commands?

Accomplishments that we're proud of

I'm proud that I've laid the groundwork for a viable SaaS application given the time constraints and everything I had to learn. It includes a full integration with Square, has OAuth login experiences for both sellers and team members, and accomplishes my goal of rewarding businesses' employees for all the hard work they do.

What we learned

Apart from what I mentioned in the challenges section, I've learned a tremendous amount about Square and its services. Once I understood the core concept of how the Java SDK worked, I was off to the races and impressed by how easy it was to use. Having ambitions to enter the SaaS space, Square is now in my tool belt for any commerce service I may need. I also learned a lot about Oauth, and how to authenticate users from multiple IDPs.

The overarching theme from this experience has been keep it simple, and focus on what delivers the most value. Being my first hackathon, I unfortunately learned that a little too late. I'm excited to use what I've learned for the next one, though!

What's next for Highlight My Team

If the current Highlight My Team app was a house, it would only have the foundation (albeit a hopefully sturdy one)! Future plans include:

  • Incorporate a business's name into the UI, and improve the fun of the user experience
  • Team and individual reward milestones for sales goals and shifts/time worked
  • Team member interactions on posted highlights (likes and comments)
  • Reward management allowing owners to create, delete, and update rewards along with placing restrictions on who can give rewards and how many
  • Team management
  • Email notifications
  • Custom reward tiers for a business's team and not its customers
  • Owner dashboard to see who is really shining on their team
Share this project:

Updates