As university students, nothing gets us more excited than the prospect of free stuff! Whether it be company-sponsored T-shirts, free pizza, or whatever else someone could be handing out, chances are we'll be there. It's a simple fact of life!

While it's great and all to hear the events happening on campus through word-of-mouth, what if there was a way to always know where to get a bite to eat, or the closest venue giving out shirts to add to your rapidly declining pile of clean clothes? Such an app not only would benefit students, but also benefit the organizations themselves by drawing in their target audience. It was through this thought that Swagslist was conceived.

What it does

Swagslist creates somewhat of a social network between organizations and the individuals they target. Organizations can create an 'Event Entry' with a few basic details -- a title, a brief description, the 'end time' of the event and what they have to offer -- and submit it to the network, which will then be visible to all students on campus until the defined end time is met. Students themselves can self-report an event if they don't already see it listed. As there could be dozens of events happening at any given time, organizations can choose to promote their listing to show up higher on the list of events, as well as the ability to have their event stay on Swagslist for an extended period of time.

How we built it

The app is split up into three parts: the network package, containing the entirety of the backend code, the iOS package, containing the client-facing elements of the iOS app, and the Android package, containing the client-facing elements of the Android app.

  • Sockets are used to transfer information between server and client.
  • Accounts and events are stored in a MySQL database.
  • Server code and database run on DigitalOcean droplet.
  • Passwords are hashed using SHA-256 and stored with individual salts for security.

Challenges we ran into

  • Networking is hard
  • Sleep is important

Accomplishments that we're proud of

  • Cross-platform support between iOS and Android
  • Rich implementation of client-server design utilizing sockets
  • Raw MySQL implementation, giving us more control and structure over the app's networking
  • Secure encryption when saving database to disk
  • Utilization of latest mapping APIs to allow for a clean interface

What we learned

  • SQL + Java database management
  • Cross-platform design
  • User interface development

What's next for Swagslist

Interface polishing, last round of fixes, finishing the monetization, and submitting for app review!

Share this project: