The digital age has ushered in the largest flood of information the world has seen since the widespread adoption of the printing press. Yet this continuous stream of content has in many ways diminished the value of our daily communications, and consequently the value of our expression. Tweets limit our ability to explore nuanced, complex ideas, Snapchats by their nature are fleeting and are prone to superficial contexts, and the age of social networks in general places a strong priority on a steady stream of messaging rather than on carefully crafted messages and ideas. We wanted to provide a service that would enable our users to simultaneously communicate with a wide audience while still maintaining the weight and meaning behind the content being sent. We wanted to create the message-in-a-bottle for the modern world.

What it does

ShadowPost is an anonymous messaging system where the encryption standard is the physicality of the real world. With ShadowPost, you can write text messages and save them in the form of "ShadowCodes", stylized QR codes that allow for instant audience recognition and interaction. These codes are designed to be printed and posted in any location: cafes, school bulletin boards, and so on. ShadowPost is named after the possibility of finding posts in unexpected places; a haiku under a table, a love note behind a lonely bench, a memoir hidden inside a tree trunk. As opposed to many other social networks where a vast majority of posts can be found by searches, ShadowPosts are only shared with the people that can physically access them, allowing for a unique sense of belonging and intimacy in anonymous contexts. The effort required to create and distribute ShadowPosts allows for more deliberate, meaningful messages to be sent and received by others. ShadowPosts time out at most in five weeks, though this value can be modified by the user. This allows the user to voice his or her ideas in a longer-lasting timeframe while still capturing the ephemerality of ideas and moments in life. ShadowPost also allows users to communicate in closed groups or create scavenger hunts by optionally restricting ShadowCode access with a customizable password.

How we built it

ShadowPost is a web application written in HTML, CSS, and JavaScript that saves data to mongodb using Node.js. ShadowCodes are generated with Google Charts API along with HTML Canvas support to overlay the images. The application's logic structure is written in JavaScript.

Challenges we ran into and accomplishments that we're proud of

Our most challenging struggles became our greatest accomplishments once we had surmounted them. Our team struggled with stylized QR code generation, database integration, camera support and QR scanning, as well as ensuring proper communication between the four main elements of the application: the front-end, the database, the application logic, and the QR APIs.

What we learned

ShadowPost is our team's first web project. We gained invaluable experience in database usage, mongodb API usage, web application development in the contexts of JS, HTTP, and CSS, teamwork skills, and creating a functional, unified experience from start to finish.

What's next for ShadowPost

We are planning on continuing development of ShadowPost. Our main goals are to streamline the user experience even further, as well as to enable more customization options such as jigsaw mode (ShadowCode is divided into unique jigsaw pieces to be collected and assembled) and custom color print options.

Our Team

Sebastian Bartlett: App logic, graphical design, public relations

Shixiong Jing: Server and research, QR writing and reading

Tianke Li: Front-end design and programming, server code

Zachary Zhao: Database and core transfer functionality

Share this project: