Inspiration

When we first came to HackGT, we had no idea what we would create. Thankfully, at 4:30 am on Saturday morning, inspiration struck like a freight train. We were brainstorming ideas that could make our lives easier and safer, where we hit on the idea of streamlining the process of booking travel. We thought, wouldn’t it be great to have one click booking of flights on a service that was end-to-end encrypted so no one could see our sensitive information but us and the airlines?

What it does

PanID is an enterprise facing solution that provides a layer of privacy through encryption for sensitive data sent between an employer and employees. By utilizing public key encryption, the information is never sent or stored in cleartext through PanID’s servers. All private information is handled solely on the end users’ machines. This ensures that, even if PanID’s servers are compromised, absolutely no information is leaked. Potential applications include sending bank account and tax information for payroll; passport and frequent flyer numbers; for booking corporate flights; and for maintaining a secure database of employee contact information.

How we built it

PanID is built on top of Node.js, TypeScript, and RethinkDB. The front-end was built by Tyler, Ben, and Uday while Ryan worked on the server-side and cryptographic code. Elliptic curve cryptography was used for asymmetric encryption while AES-CBC was used for symmetric data encryption. On the server, Node.js' built-in libraries were used in addition to an ECC abstraction library. On the client, the Web Crypto API was used for faster performance than pure JavaScript implementations. Scrypt was used to derive the user's private key from their password.

Challenges we ran into

When we first were building, we went to Delta to see if it was possible to integrate our project into Delta’s ticket purchasing API to streamline the purchase process from the consumer’s end. After talking to Delta, we learned that they don’t have a publicly accessible ticket purchasing API, so we decided that we needed to pivot. With our time to build a product rapidly winding down, we found ourselves in a bind, at a loss for what to do with our partially-completed application. Luckily, we hit upon the idea of using our software to help employers and, energized by the new idea, we once again went to work. Additionally, most of our team had little experience with coding and cryptography, so there was a steep learning curve along the way.

Accomplishments that we're proud of

First, we are very proud of the fact that we actually have a working product because we are all freshmen and it is our first hackathon. Additionally, we are all excited that we were able to learn something about software development this weekend and hope to implement that knowledge in the near future. Finally, we are proud of the fact that we were able to pivot and still hit the ground running.

What we learned

We learned a lot of things this weekend. First, we learned that cryptography is hard to get right. Second, we learned the importance of researching product applications before actually starting to code. Third, we learned a lot about git, specifically, how to screw it up and fix our mistakes. Finally, we learned to always stay flexible and that pivoting is not necessarily a bad thing.

What's next for PanID

Next for PanID we hope to bring more functionality to the platform by expanding it to a wider range of applications. We would like to revisit the idea of the platform being used to streamline travel booking, specifically across plane, hotel, and rental car booking. Additionally, we would like to write APIs so that it is easier for companies to implement our software within their enterprises. On a more long term basis, we would like to bring the platform to any application where users have to constantly enter the same information. We at PanID firmly believe that security and convenience can coexist and that encryption should be widely adopted.

Built With

Share this project:

Updates