Inspiration

We're sure you have tons of photos on your device and hope to someday categorize them. You would want to prize those age old vacation photos without being bugged by your lecture snaps every 5 photos. But you can’t seem to get out of the cluttered Camera Roll. If the idea of so many photos and with that, so much sorting, seems daunting. Our app is of use to you. It sorts through all of that and suggest options to make albums, almost without even lifting a finger.

More than just events and places, Sortify can sort according to moods and emotions. So if you were happy or smiling in a photo. Sortify will automatically collect all such photos for you so you can relive your best memories anytime, with little more than a mere tap of a button.

What it does

Sortify, is a web based app that scans through your photo and sorts them automatically into potential albums you’d like based on the content of those photos. For instance if you upload a mix of photos you took while having fun with a friend, some random selfies, nature photography and even in class lecture photos. Our app will automatically sort it into potential albums like lakes, cityscapes, lecture photos. It can even sort according to mood or how you were feeling based on those photos. For instance, it can collect all your photos in which you are happy so you can look back at those times easily. Letting your enjoy your memories without going through the long manual sorting process.

How we built it

Our approach to this was utilizing an API, Clarifai, which scans the images for keywords and sends back a JSON containing information regarding possible keywords relating to the image and probability estimates of certainty. We then extract useful information from the JSON output and format it. We pass the potential keywords in each photo through a filter that only keeps the highest probability options. We compile all the keywords from all the photos and tally frequencies. We then allocate scores to most likely options that result from our algorithm and sort photos into these albums that we allow the user to download as he chooses.

Furthermore, all this is implemented at the front end through CSS to provide a comfortable, easy and friendly experience for the user. We have a minimalist and easy to use login page that asks user to create an account, this links to a second page that allows sign up and inputting a username and password. This creates a level of security for the photos. We have a login portal so privacy is not compromised as each individual’s photos remain private. We then navigate to a page for uploading the photos. This too is an easy process, with the press of a button, literally. Hence, making it as user friendly as possible. Finally, on a final page we display choices for possible album names and allow the user to view sorted albums.

Challenges we ran into

The path to this app had a number of difficulties. First off, we tried to code in Java Script and Node.js. However, that path, through promising had it’s challenges. Primarily, the formatting of the JSON data in javascript was difficult to decipher and extracting the required output was highly inconvenient. Also working with advanced level Node.js proved troublesome, as we had not used it before. We then moved to Python and PHP at the back end. Extracting useful information was far more convenient in Python using dictionaries and arrays. We first implemented the rest of the keyword ranking algorithm in Python, then shifted some of the burden onto PHP for the web app. One key challenge was implementation of the process on a single page. Additionally, working with PHP was also a hurdle at times as web implementation of the app was challenging as only so many photos could be uploaded on the server and processing time sometimes was slow.

Accomplishments that we're proud of

The app works for starters! Also we all gained a lot of new knowledge and learnt lots.

We went through a lot of technologies and found which options worked best for us.

Exclamations aside, we're excited for how this could help ease something everyone goes through with. More than just a facility, it can be a means to relive memories so easily and that's what really matters. We can make people happy and rejoice. Promoting positivity, one small step at a time and making the world a better place.

What we learned

A couple of things:

The importance of understanding the data that you're using. Version Control is important. Having a team with a diverse skill set can really be an asset. Simpler the idea, the better. (clearly) PHP is not the best option for web development. It's easier but clunkier. Bootstrap is really pretty. Front end and back end are both very important. Page source is important for web development. Understanding the data you get is a key part of coding. So is finding how to access it. What process is simple in one language is difficult in another language's implementation. Sleep is immaterial. Sheer excitement for a project works better than caffeine.

What's next for Sortify

We are considering a number of immediate features for expansion. Features like downloading albums, social media Integration and smarter backend processes are expected. We envision a smarter version of Sortify that makes it more individual by learning each user's preferences using Machine Learning. We are also considering expanding from a web app into mobile app as well so more users can use Sortify easily.

Share this project:

Updates