|
1 |
| -[](https://travis-ci.org/mozilla/events.webmaker.org) |
2 |
| - |
3 | 1 | # Webmaker Events
|
4 | 2 |
|
5 |
| -## Build Dependencies |
6 |
| - |
7 |
| -- npm |
8 |
| -- grunt CLI `npm install -g grunt-cli` |
9 |
| -- bower `npm install -g bower` |
10 |
| - |
11 |
| -## Testing Dependencies |
12 |
| - |
13 |
| -- protractor `npm install -g protractor` |
14 |
| - |
15 |
| -## Setup |
16 |
| - |
17 |
| -### Application Setup |
18 |
| - |
19 |
| -```bash |
20 |
| -git clone https://github.com/mozilla/events.webmaker.org.git |
21 |
| -cd events.webmaker.org && npm install |
22 |
| -``` |
23 |
| - |
24 |
| -### Service Setup |
25 |
| - |
26 |
| -Profile uses a REST service for its backend. |
27 |
| - |
28 |
| -To run the service locally: |
29 |
| - |
30 |
| -1. Clone [webmaker-events-service](https://github.com/mozilla/webmaker-events-service) into a new location (most likely parallel to **events.webmaker.org**) |
31 |
| -2. `cd` into the `webmaker-events-service` directory |
32 |
| -3. Run `node server.js` |
33 |
| - |
34 |
| -### Configuration |
35 |
| - |
36 |
| -To pass configuration to the server, `cp .env-dist .env` or create a `.env` file in the root directory. |
37 |
| - |
38 |
| -This app takes four configuration parameters, all of which are optional. |
39 |
| - |
40 |
| -`PORT` - Where to run the server |
41 |
| - |
42 |
| -`EVENTS_LOCATION` - The URL of the events service |
43 |
| - |
44 |
| -`ACCOUNT_SETTINGS_URL` - The the URL for account settings pages on Webmaker Login, e.g. http://localhost:3000/account |
45 |
| - |
46 |
| -`MY_MAKES_URL` = The URL for the my makes page on Webmaker e.g. http://localhost:7777/me |
47 |
| - |
48 |
| -`GA_ACCOUNT` = The Google Analytics property e.g. UA-XXXXX-X |
49 |
| - |
50 |
| -`GA_DOMAIN` = The domain for the your Google Analytics property |
51 |
| - |
52 |
| - |
53 |
| -## Grunt Tasks |
54 |
| - |
55 |
| -- **grunt** - Run this for local development. It will spawn a server at [localhost:1981](http://localhost:1981), compile `index.template`, and recompile your LESS files as they are modified. It will also enable live reload. |
56 |
| -- **grunt validate** - Checks to see if JS is beautified and passes JSHint. Checks to see if JSON is valid. |
57 |
| -- **grunt clean** - Runs JSHint and beautifies JS to comply with our [contribution guidelines](https://github.com/mozilla/events.webmaker.org/blob/master/CONTRIBUTING.md). Checks to see if JSON is valid. |
58 |
| -- **grunt build** - Used for building a production ready version of the app with minified and concatenated assets. |
59 |
| -- **grunt test** - Run automated tests. |
60 |
| - |
61 |
| -### A note on index.template |
62 |
| - |
63 |
| -The file `index.template` has several tokens, which are replaced when `grunt` or `grunt build` are run. |
64 |
| - |
65 |
| -When `grunt` is run for local development, the generated `index.html` will contain individual, non-minified JS files and CSS with source maps. It will also contain a live reload script. |
66 |
| - |
67 |
| -When `grunt build` is run for a production ready build, `index.html` will only reference a few 3rd party JS libraries and `compiled/app.min.js`, which includes the scripts listed in the `scripts` array in `Gruntfile.js`. *Note that `grunt build` shouldn't be used for local development aside from testing.* |
68 |
| - |
69 |
| -**Never modify index.html directly! It's machine generated and not meant to be modified by hand.** |
70 |
| - |
71 |
| -### Localization |
72 |
| - |
73 |
| -Some of the code was taken from [Angularjs LocalizationServer](https://github.com/lavinjj/angularjs-localizationservice/) by Jim Lavin. |
74 |
| - |
75 |
| -All strings are included and can be found in [locale/<en_US>/translation.json](/locale/en_US/events2.json). |
76 |
| - |
77 |
| -The format is slightly different than how we do it in Webmaker apps and this is the format: |
78 |
| - |
79 |
| -``` json |
80 |
| -"_string_name_": { |
81 |
| - "message": "Some value here", |
82 |
| - "description": "Description here can be useful for Transifex since translator can see this." |
83 |
| -}, |
84 |
| -"_create_account_": { |
85 |
| - "message": "Create Account", |
86 |
| - "description": "Create and account button" |
87 |
| -}, |
88 |
| -"_back_to_webmaker_": { |
89 |
| - "message": "Back to Webmaker", |
90 |
| - "description": "Button to go back to Webmaker.org site" |
91 |
| -} |
92 |
| -``` |
93 |
| - |
94 |
| -To localize string in template file you have three options: |
95 |
| - |
96 |
| -1. `{{ '_some_key_name_' | i18n }}` |
97 |
| - This will check the translation file and look for that specific key name and return the message. If key name not found it will return **unknown key: "_some_key_name_"**. |
98 |
| - |
99 |
| -2. `<span ng-bind-html="'_some_key_name' | i18n"></span>` |
100 |
| - |
101 |
| - This method is useful when you have some markup. |
102 |
| - |
103 |
| -3. `<span bind-unsafe-html="'_some_key_name' | i18n"></span>` |
| 3 | +## DEPRECATED |
104 | 4 |
|
105 |
| - This method is useful when you have some variable inside your string for instance: "My name is {{name}}." |
| 5 | +Read more on our [blog](https://blog.webmaker.org/product-update-for-appmaker-and-popcorn-maker) |
0 commit comments