Inspiration
Our team was inspired by the website tmpfiles.org. This site is great for sending small, simple files to people you know, and doesn't require any authentications or passwords. This makes file transfers such simple, but this convenience comes at the cost of security. If anyone managed to guess, find or hack that super long bitstring from your device, then they would have full access to any and all files. This gave us the idea to add some security to an existing idea.
What it does
JAFE (Jah-fay) starts with an Organization Administrator creating an account with Auth0 and adding a list of approved IP Addresses, creating any 'groups' to put teams of people into, and sending out temporary group invite links to their employees. Going forward, any links that are generated will expire after a very short time, typically 1 hour. Once these groups and approved IP Addresses are created, users will be able to upload files to either the group they are a part of, or the organization as a whole. Jafe will first check to see if the user is currently connected to a valid IP Address, then cross-reference that with their device's MAC address to provide the highest amount of physical security possible.
How we built it
Our team spent all day and night building this application (or series of applications) with and NextJS x Electron frontend and a Node server. We used MongoDB for the database and Auth0 for Administrator accounts.
Challenges we ran into
This project was (and still is) hard. We took on a massive project for the amount of time we had, and are dangerously close to not finishing as I am typing this. One of our biggest mistakes was that our team has had a lot of experience with React and JS applications, so we thought that we could easily take on a NextJS x Typescript project, which turned into more of a battle with some picky languages and frameworks. This is something we did not anticipate, and have easily lost hours while trying to figure out semantic code problems.
Accomplishments that we're proud of
This is very advanced tech stack that we were able to power through, and so I am proud of myself and my team for not crashing out at 3am. We also managed to use new technologies we have never used before on the fly, such as AWS S3.
What we learned
We learned that NextJS is evil and should not be toiled with. We learned that accordion menus are surprisingly intricate. We learned that Dante doesn't like eating in classrooms.
What's next for Jafe
If we win? Maybe we'll continue development by fully gutting the codebase and starting over with more familiar systems. Otherwise I see us sailing off in to the sunset with this project squarely behind us.
Built With
- auth0
- electronjs
- mongodb
- nextjs
- typescript
