<img src="https://trovebox.com/images/logo.png" style="margin:auto;">

### What is Trovebox?

1.  [FAQ][faq], Answers to the most common questions.
1.  [API][api], Documentation to get started building applications on Trovebox.
1.  [Schemas][schemas], Description of what the different objects in Trovebox look like (i.e. a photo or a comment).
1.  [Guides][guides], Detailed guides to help you get the Trovebox software installed on various systems.

----------------------------------------

### How does Trovebox work?

Trovebox works similarly to Flickr, Smugmug and other photo sharing services with one major difference: you retain ownership and give Trovebox access to use them.
All photos, tags and comments are stored in your personal cloud accounts with companies like Amazon, Rackspace or Google.
This means you can easily switch between Trovebox services, use more than one at a time or stop using them altogether while retaining all of your photos, tags and comments.

----------------------------------------

### Why should I use Trovebox?

While Trovebox functions like many existing services it's drastically different for several reasons.

1.  **Ownership**
    Users can specify where their photos are stored. By default they are seamlessly stored in your [Amazon S3][s3] bucket.
1.  **Built in backups**
    Since you upload photos to your own [Amazon S3][s3] bucket it's like uploading and archiving your photos in one step.
1.  **Portability**
    Easily start off by signing up for a hosted Trovebox account and later switch to hosting the software yourself. There's no need to transfer your photos somewhere else since it's federated. It's like plug and play.
1.  **Durability**
    Your photos are not tied to any particular photo service. Because everything is open you can write your own web interface for your photos, choose between Trovebox hosting providers or install the Trovebox software on your own server.
1.  **Community**
    New features will be entirely community driven. Features with the most votes will get top priority in getting implemented. If you want a feature that doesn't have many votes you can implement it yourself and issue a pull request.

----------------------------------------

### What if I use Flickr or Smugmug?

If you're using Flickr or Smugmug you should consider switching to Trovebox.
The more photos and time you invest on a proprietary photo sharing service the more devastated you're going to be once they shut down or no longer appeal to you.

There are importing tools available to make the switch easy.

----------------------------------------
# DEVELOPERS

### Reachability problems

`Reachability / gcc-4.2 failed with exit code 1 / Duplicate symbol`
The Reachability class is included in ShareKit. As this class already exists in the project, you'll need to remove it from ShareKit. Open the ShareKit group and delete the Reachability group.


### Modules
Don't forget to execute
````
$ git submodule update --init --recursive
````

### Localization
Use this command to run in all files .m and generate the translation file to be filled by translators.

````
cd Photo
find . -name \*.m | xargs genstrings -o en.lproj
````

### Missing implementation
After download our code, Xcode will complain that a PrivateAuthenticationService.m is missing. This happens because it is the implementation applied by Trovebox. 
You can download it [here](https://dl.dropboxusercontent.com/u/138224/Github/PrivateAuthenticationService.m). It will be an empty implementation. Then to connect to your service use the OAuth Procedure. Click in `Login with email` > `Own Server`


[aws]: http://aws.amazon.com/
[s3]: http://aws.amazon.com/s3/
[simpledb]: http://aws.amazon.com/simpledb/
[api]: https://github.com/photo/frontend/blob/master/documentation/api/Api.markdown
[faq]: https://github.com/photo/frontend/blob/master/documentation/faq/Faq.markdown
[schemas]: https://github.com/photo/frontend/blob/master/documentation/schemas/Schemas.markdown
[guides]: https://github.com/photo/frontend/blob/master/documentation/guides/Guides.markdown
