Social media communities around the planet imagine new and exciting challenges for users to complete every day, but no challenge-based social media platform exists to facilitate them.

What it does

Challenger provides this challenge-centered social media platform. The application has two main functions. Users that have an idea for a challenge can post it to their followers' feeds. Users that wish to participate in challenges can select a posted challenge from their feed and upload a video of them completing the challenge.

Other features include:

-A top 50 challenges list

-Notification system for accepted challenges, new followers, challenge likes, etc.

-Discussion system for each challenge

How I built it

Version 1: I initially developed Challenger for Android using the Eclipse CodenameOne Plugin, which allowed for Java development on any device. This version communicated with a Java server program running on an AWS instance using a sockets API.

Since the first version began as a school project and was not developed using the most efficient/modern design, I restarted after its completion to develop version 2, a more professional mobile application, this time for iOS.

Version 2: This application was developed natively for iOS using Swift and XCode. I also revamped the server, programming a PHP web interface using apache that maintained an SQLite database. This new architecture allowed for HTTP communication between the clients and the server. Videos were streamed to the clients using Apple's HTTP Livestreaming protocol. In this implementation I also added push notification functionality through a third party service known as Pusher.


-Designed and implemented a complete client-server networking application that maintained a state and was capable of modern functionality such as livestreaming.

-Hosted a Linux server using AWS and Apache

-Developed a hash-and-salt SHA-512 encrypted password storage system

-Programmed a password recovery system using the GMail API

-Released both applications into open Beta Testing

Overall, I gained a year and a half of valuable programming experience in developing these applications, and learned of many different APIs, languages, and other technologies that exist to aid in web development.


Share this project: