Pholder is a social image viewing web app for members are able to exclusively share/view images with their friends.
The general model structure of the app is: users, albums, photos. The catch is that albums can have multiple users, so that ownership is shared among people, allowing “invited” users to upload/edit/delete pics together.
This is my first elaborate Rails app, so I would be more than happy to take any suggestions since I am looking to constantly add new features to it.
Notes: I utilized a combination of jQuery File-Upload, Amazon S3, and Paperclip, and Fancybox for convenient image uploading management for the user. Paperclip was used to manage photo properties, jQuery File-Upload was used for user-friendly multi-file uploads, Fancybox for image viewing and Amazon S3 for speedy uploads and scalable storage. I also added Twitter Bootstrap towards the completion of this project because I wanted to challenge myself in designing the website by hand first before utilizing external assistance.
The progress bars for the uploads were taken from www.railscasts.com, a useful website that I definitely used for learning how to implement the advanced features, so special thanks to Ryan Bates for the resources.
One feature I had trouble with was the implementation of a “confirmation” for members to “accept” or “reject” album invitations from their friends. Therefore, new albums would appear regardless of whether or not the member wanted to be a part of the album or not. In the process I tried to use a model relationship similar to the Friendship model I had for users to friend each other. I managed to accomplish the relationship of an “accepted album” but for some reason “pending album” didn't work, so that was one feature that had to be compromised. (11/6/2012)