GlobalJags is a cloud-based application that is intended to demonstrate how to integrate several cloud services together.
This project will be deployed on the Google Cloud Platform (GCP) using the credits that you have been granted. However, the concepts and implementation presented here can be accomplished on any of the major cloud providers.
- Create a fork of this GitHub repository into your own GitHub account. Note the URL for your version of repository.
- Log in to the Google Cloud Shell using your IU username and passphrase. (If you are logged in to Google with a personal account, you should use a Private or Incognito window.)
- Use
git clone
to download your version of the repository and access the starter code.
- Create a NEW Google Cloud Project. The name must be unique, but it should be something like
sp24-41200-username-globaljags
- Create THREE new buckets in Cloud Storage:
- sp24-41200-elliott-globaljags-uploads
- sp24-41200-elliott-globaljags-thumbnails
- sp24-41200-elliott-globaljags-final
Several GCP services will work in concert to produce the application.
We will create a highly simplified Node.js application that allows users to upload photos and displays a thumbnail of the photo on a Google Map.
Photos will be uploaded to a bucket where they will await processing. Processed photos will be served to the website from Cloud Storage.
Uploading a file to a bucket will trigger a Node.js cloud function (lambda) that will extract the location data from the photo and generate a thumbnail image stored in a different storage bucket. Photos that do not meet the criteria of the application will be rejected and deleted.
Location data for each valid photograph will be stored in a collection in a realtime database. Updates to this database will automatically trigger a refresh of the Google Map being displayed on the website.