Skip to content

shea-hawkins-zz/emblem-web

 
 

Repository files navigation

Emblem

Hold up a looking glass to the world, and transform the view! Emblem presents an augmented reality window, displaying geocached two- and three- dimensional models onto users' surroundings.

Web client is available for use at emblemAR.com. Mobile app availability on the Apple App store is pending, and can be seen in action on YouTube by clicking the images below.

3D Raptor Library & Statue of Liberty Dolphins

Upload 3D models from a computer desktop, explore artwork posted around the world, and manage granular user settings from the web client.

Stories in Ready

In addition to providing a dramatic visual experience, the mobile application offers a well-executed implementation of knitting Vuforia's C++ library with Swift using Objective-C.

Stories in Ready

Table of Contents

Getting Started

Prerequisites

Installation

  1. Clone the web and server code git clone https://github.com/Hadashco/emblem-web.git emblem-web
  2. Clone the mobile code git clone https://github.com/Hadashco/emblem-mobile.git emblem-mobile

Starting the Server:

  1. Setup .config.sh according to .configEx.sh
  2. Navigate to emblem-web folder in the terminal
  3. Run bash start.sh
  • Initializes config file
  • Runs Docker compose
  1. Navigate to http://localhost:3000/ in browser

Starting the Mobile App:

  1. Navigate to emblem-mobile folder in the terminal
  2. Run pod install
  3. Open document in Xcode to modify
  4. Test code functionality either with the built-in simulator or by opening the application on a device (advised)

Running Tests

  1. Navigate to emblem-web folder in the terminal
  2. Run npm run test:docker

Built With

  • Web Client: React, Redux, Webpack
  • Mobile App: Swift 2.2
  • AR View: C++
  • Server: Node.js, Express, Sequelize
  • Build System: Docker
  • Storage: Postgres, AWS (S3)

Obtaining API Keys

### Facebook 1. Sign up to be a [Facebook developer](https://developers.facebook.com/) 2. Click the "Create a New App" on your [apps page](https://developers.facebook.com/apps/) 3. Choose a "Website" app and give it a name 4. Add a contact email and a category when prompted 5. Complete the captcha and wait for the app to be created 6. Scroll down to the "Tell us about your website" portion of the next page, enter: `http://localhost:3000/` 7. Click "Next" and scroll back to the top of the page. Click on the "Skip Quick Start" button 8. Click the "+ Add Product" button on the left side of the dashboard 9. Click the "Get Started" button next to "Facebook Login" 10. For "Valid OAuth redirect URIs", enter: `http://localhost:3000/auth/facebook/callback` 11. Click "Save Changes" on the bottom right 12. Go back to the app dashboard by clicking the "Dashboard" menu item on the top left 13. Make a copy of `./server/config/.env.sample.js` as `./server/config/.env.js`. Notice that the `.env.js` file is a JavaScript file. The value for each property of the exported object in this file should be a string. Make sure there are single quotes around the pasted in values 14. Copy the "App ID" and replace `FACEBOOK_ID`'s value with the copied value 15. Click the "Show" button for "App Secret". Enter your Facebook password to display the value. Copy the shown value and into the `.env.js` file as the `FACEBOOK_SECRET`

With the dev server running, navigating to http://localhost:3000/auth/facebook redirects the browser to Facebook and ask for app authorization. Once authorized, the browser redirects to http://localhost:3000/auth/facebook/callback with a code query param (logged on the server). The browser then redirects to the application root.

Powered by AWS Cloud Computing

### Amazon 1. Set up for an [AWS S3 Account](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSGettingStartedGuide/AWSAccounts.html) - Consider securing account with [multi-factor authentication](https://aws.amazon.com/iam/details/mfa/) 2. Use the [Access Key ID and Secret Access Key](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSGettingStartedGuide/AWSCredentials.html) to populate the `.config.sh` file 3. Create a [new bucket](http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html) to store your files 4. Replace all references to the bucket `hadashco-emblem` with the new bucket name - The `artController.js` file has most of these references - **Pro Tip:** In the Sublime text editor, use `ctrl+shift+f` to search all open documents

Run Without AWS

Navigate to server/test/addToAwsFreeArtRoute.md and follow the enclosed instructions.

Contributions

If you have any problems or major improvements, please consult the known issues. If you do not see your problem captured, please file a new issue. Pull requests adhering to the Airbnb JavaScript Style Guide are always welcome.

Authors

License

The MIT License (MIT)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Acknowledgements

  • Special thanks to the Vuforia team for the open-source availability of their library

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 93.3%
  • CSS 5.7%
  • Other 1.0%