Inspiration

People don't hide their personal, sensitive information as much as they should, so we wanted a way to make Password Managers fun and engaging. But, how do you get people to care about their online safety? Gamify it of course!

What it does

At its core, Passwars is a password manager! You can create an account and put your accounts and passwords in, generate passwords, and get them copied straight to your clipboard when you want to use them. However, every user on the website can see which services any other user has stored passwords for. If you see a login you want, challenge another user for their password in a game of chess! If both users accept the duel, both putting an account on the line, our app sets up a Chess 1v1 through Chess.com's API. Win the match, and you get to keep your password and your opponents! Lose, and you may want to be quick to change your password...

How we built it

Our app comes in two forms you can choose from: A website you can conveniently visit at passwars.ethanspickard.com or an executable program you can install on Windows built on Electron. The backend account and challenge systems were built on a combination of Python and Typescript for logic and PostgreSQL for our player/match databases. Our website's frontend was primarily with ReactJS with some Tailwind CSS. The website is being self-hosted in an Nginx Docker container using a Cloudflare tunnel to get around CGNAT restrictions and to handle DNS.

Challenges we ran into

Setting up a complex environment and trying to get so many moving services to talk and work together was probably our biggest time sink, even more than the logic behind challenging others and setting up logins! It took a lot of patience to get our frontend, backend, and self-hosted server to come together, but the payoff is a fairly intricate system that we built ourselves!

Accomplishments that we're proud of

We are very proud that in the short time that we had for the hackathon, we could pull together an entire proprietary account handling system, learn the cryptography and associated algorithms required to safely handle passwords, and create a live system to notify and connect users to play Chess!

What we learned

  • Cryptography and information security.
  • Web hosting, with Docker, Nginx, and Cloudflare tunneling.
  • Websocket integrations.
  • It's better to get one or two base processes working perfect together and completed before trying to pull all the other services required to host a website.

What's next for Passwars!

  • We want to add more games for users to 1v1 in, so that any user can feel like they have a good shot winning in a game they're comfortable at.
  • Reinforce the cryptographic systems we have in place to safely store user passwords and ensure that users feel safe using the website as a password manager.
Share this project:

Updates

Submission history