Skip to content

Buza/OpenPhoto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

OpenPhoto

A. Overview:
------------

OpenPhoto allows you to take photos and store them where you want.

Have you ever wanted a photo app that automatically saves your photos to your very own server? If so, then OpenPhoto is for you. 

OpenPhoto allows you to specify the location to which the photos you take will get stored. If you know how to set up a web server, you can get started with OpenPhoto right away!

OpenPhoto is great for:

★ Private events, where saving your photos to someone else's server may not be appropriate to maintain the privacy of the attendees.

★ Public events, where you'd like to allow everyone with the OpenPhoto app to send their photos to a server that you have control of. This means you can take control of the presentation, layout, and access to the pictures as you see fit. 

OpenPhoto allows you to specify which image size (S, M, L) you'd like to save to the server, optionally include location information, specify a username, and even add comments to each individual photo. It remembers which servers you've added so you can change the location where your photos will get saved with a few simple taps.


Note:

While this project has no official relationship to the (equally outstanding) OpenPhoto.me project, it does support saving photos to OpenPhoto.me services. In other words, if you're using OpenPhoto.me to save and organize your photos, this app can help you with that!


B. Technical Details:
---------------------

Setting up a server
------------------- 

Setting up a webserver to store your pictures and metadata generated from OpenPhoto is easy. In fact, openphoto.py (part of this repository) is a simple Tornado-based webserver that you can set up on your own server to aggregate the photos you take with the app.

If you'd like to build your own server, that's easy as well. To integrate with the iOS app, your server must implement the following three handlers:

  1. /<server name>/hello
    This is used as a way to test a server to ensure it's capbable of responding
    to OpenPhoto requests. 

      The app expects responses from this in JSON:
	{ 'code' : 200, 'status' : 'success', 'title' : 'My OpenPhoto Test Server'}

      The 'title' field will then be displayed by the app in the Hosts table upon success.


  2. /<server name>/upload
    This is used to upload photos to the server. The example server implementation is
    extremely simple, and does not handle requests in parallel.  The app automatically 
    sends photos to the server as you take them, and expects the following parameters: 

      'photo_id' = A unique identifier for a photo. Currently is based on a combination of timestamp and usersname.
      'user_id' = The user-specified username.
      'comment' = The comment associated with the photo.
      'latitude' = The latitude of the location where the photo was taken.
      'longitude' = The longitude of the location where the photo was taken.
      'photo_width' = The width of the full sized photo in pixels.
      'photo_height' = The height of the full sized photo in pixels.
      'thumb_width' = The width of the thumbnail photo in pixels.
      'thumb_height' = The height of the thumbnail photo in pixels.
      'imgdata_b64' = The base64-endoded full sized photo. 
      'imgdata_thumb_b64' = The base64-encoded photo thumbnail.

      The app expects responses from this in JSON:

        { 'status' : 'failure' }
        { 'status' : 'success' }
    

  3. /<server name>/comment
    Comments may be added at any time in the app by double tapping on any picture.
    Because comments can be updated in this fashion, new comments are sent to the 
    server as a /comment/ request with the following parameters: 
       
      'photo_id' - The photo id, should be used to locate the photo.
      'comment' - The photo id, should be used to locate the photo.

      The app expects responses from this in JSON:

        { 'status' : 'failure' }
        { 'status' : 'success' }


Presentation
------------ 

One of the great things about OpenPhoto is not only that you decide where your pictures are stored, but you also have complete control over the presentation. You're free to build anything you can imagine with pictures, usernames, comments, and geolocation information of the photos you (and your friends) are taking with the app. 
 

About

OpenPhoto for iOS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages