A rich client side application for interacting with the Adobe Analytics REST API, version 1.4.
- http://drjones.eyelock.net/ - minified version
- http://drjones-staging.eyelock.net/ - unminified version
- Node (Package Management) - https://nodejs.org/
- Bower (Package Management) - http://bower.io/
- jHipster (Skeleton of the app copied from jHipster, not the server side) - https://jhipster.github.io/
Which uses:
- Bootstrap - http://getbootstrap.com/
- Angular - https://angularjs.org/
- Angular Bootstrap - https://angular-ui.github.io/bootstrap/
See the "About" page of the application for the other techs used
- Install Git Client
- Install Node & Bower as per jHipster documentation for quickness http://jhipster.github.io/installation.html
- (Optional) Install Yeoman, then Angular Generators
- Clone this repository
- In the project directory, run
npm update
- In the project directory, run
bower update
(NB If you are asked about dependancies, choose the latest version of the library, this generally works :) ) - Execute
cp config/aws_s3.sample config/aws_s3.json
, add your S3 details if needed (not needed if running locally) - Execute
cp config/slack.sample config/slack.json
, add your Slack details if needed (not needed if running locally) - Import into your favourite IDE (I like Brackets: http://brackets.io/)
- Follow instructions at http://gruntjs.com/creating-plugins if you are creating one.
- If you want to install the existing grunt plugins, use
npm install ./grunt/grunt-taskregistry
to make it available.
- Run
grunt serve
in the project directory. - This will give you live reload in your browser (via a proxy server) that allows quicker client side development.
- Choose 'Operations > Login' and enter some credentials to log into the app.
- Run
grunt build
- A minified version of the application will be created in the
dist/
folder.
Some grunt plugins have been made to simplify some tasks within the project. Generally these need done before building the project.
Simple Grunt plugin to create the task-registry.json file from the predefined Tasks in the app/data/tasks
folder.
This means that the task-registry.json does not need to be manually managed.
It is not called on build, as there are times where you might not want to re-generate the task-registry.json
file during development.
This project deploys to Amazon S3 buckets. 2 buckets are required, one for staging, and one for production:
- Staging - gets unminified version of code for debug
- Production - gets minified version of application
Setting up requires creating a aws_s3.json file in the config/ directory. See aws_s3.sample for how it should be structured.
You can then deploy your local code via the following:
- downloads existing code to backup/staging;
- cleans the bucket (apart from bower_components);
- uploads the code in differential format
- builds the project using
grunt build
- downloads existing code to backup/production;
- cleans the bucket of all files
- uploads the code as new
- Runs
grunt deployStaging
- Runs
grunt deployProduction
See http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
Sample Public Bucket Policy for read on everything:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::dmysuperduperbucketname/*" } ] }