Commit 6fe8fbb24ae9e995ba4a1215ba9ecd67f0995853

Authored by Ryan Glover
Exists in master

Merge branch 'bug/fix_sass_dependency_#45'

1 # Meteor packages used by this project, one per line. 1 # Meteor packages used by this project, one per line.
2 # 2 #
3 # 'meteor add' and 'meteor remove' will edit this file for you, 3 # 'meteor add' and 'meteor remove' will edit this file for you,
4 # but you can also edit it by hand. 4 # but you can also edit it by hand.
5 5
6 standard-app-packages 6 standard-app-packages
7 underscore 7 underscore
8 accounts-password 8 accounts-password
9 accounts-base 9 accounts-base
10 jquery 10 jquery
11 check 11 check
12 audit-argument-checks 12 audit-argument-checks
13 iron:router 13 iron:router
14 themeteorchef:jquery-validation 14 themeteorchef:jquery-validation
15 particle4dev:sass@0.3.0
16 twbs:bootstrap 15 twbs:bootstrap
17 browser-policy 16 browser-policy
18 meteorhacks:npm 17 meteorhacks:npm
19 18
20 19
21 npm-container 20 npm-container
22 themeteorchef:bert 21 themeteorchef:bert
23 meteorhacks:ssr 22 meteorhacks:ssr
23 fourseven:scss
1 accounts-base@1.2.0 1 accounts-base@1.2.0
2 accounts-password@1.1.1 2 accounts-password@1.1.1
3 audit-argument-checks@1.0.3 3 audit-argument-checks@1.0.3
4 autoupdate@1.2.1 4 autoupdate@1.2.1
5 base64@1.0.3 5 base64@1.0.3
6 binary-heap@1.0.3 6 binary-heap@1.0.3
7 blaze@2.1.1 7 blaze@2.1.1
8 blaze-tools@1.0.3 8 blaze-tools@1.0.3
9 boilerplate-generator@1.0.3 9 boilerplate-generator@1.0.3
10 browser-policy@1.0.4 10 browser-policy@1.0.4
11 browser-policy-common@1.0.3 11 browser-policy-common@1.0.3
12 browser-policy-content@1.0.4 12 browser-policy-content@1.0.4
13 browser-policy-framing@1.0.4 13 browser-policy-framing@1.0.4
14 callback-hook@1.0.3 14 callback-hook@1.0.3
15 check@1.0.5 15 check@1.0.5
16 ddp@1.1.0 16 ddp@1.1.0
17 deps@1.0.7 17 deps@1.0.7
18 ejson@1.0.6 18 ejson@1.0.6
19 email@1.0.6 19 email@1.0.6
20 fastclick@1.0.3 20 fastclick@1.0.3
21 fourseven:scss@2.1.1
21 geojson-utils@1.0.3 22 geojson-utils@1.0.3
22 html-tools@1.0.4 23 html-tools@1.0.4
23 htmljs@1.0.4 24 htmljs@1.0.4
24 http@1.1.0 25 http@1.1.0
25 id-map@1.0.3 26 id-map@1.0.3
26 iron:controller@1.0.7 27 iron:controller@1.0.7
27 iron:core@1.0.7 28 iron:core@1.0.7
28 iron:dynamic-template@1.0.7 29 iron:dynamic-template@1.0.7
29 iron:layout@1.0.7 30 iron:layout@1.0.7
30 iron:location@1.0.7 31 iron:location@1.0.7
31 iron:middleware-stack@1.0.7 32 iron:middleware-stack@1.0.7
32 iron:router@1.0.7 33 iron:router@1.0.7
33 iron:url@1.0.7 34 iron:url@1.0.7
34 jquery@1.11.3_2 35 jquery@1.11.3_2
35 json@1.0.3 36 json@1.0.3
36 launch-screen@1.0.2 37 launch-screen@1.0.2
37 livedata@1.0.13 38 livedata@1.0.13
38 localstorage@1.0.3 39 localstorage@1.0.3
39 logging@1.0.7 40 logging@1.0.7
40 meteor@1.1.6 41 meteor@1.1.6
41 meteor-platform@1.2.2 42 meteor-platform@1.2.2
42 meteorhacks:async@1.0.0 43 meteorhacks:async@1.0.0
43 meteorhacks:npm@1.3.0 44 meteorhacks:npm@1.3.0
44 meteorhacks:ssr@2.1.2 45 meteorhacks:ssr@2.1.2
45 minifiers@1.1.5 46 minifiers@1.1.5
46 minimongo@1.0.8 47 minimongo@1.0.8
47 mobile-status-bar@1.0.3 48 mobile-status-bar@1.0.3
48 mongo@1.1.0 49 mongo@1.1.0
49 npm-bcrypt@0.7.8_2 50 npm-bcrypt@0.7.8_2
50 npm-container@1.0.0 51 npm-container@1.0.0
51 observe-sequence@1.0.6 52 observe-sequence@1.0.6
52 ordered-dict@1.0.3 53 ordered-dict@1.0.3
53 particle4dev:sass@0.3.0
54 random@1.0.3 54 random@1.0.3
55 reactive-dict@1.1.0 55 reactive-dict@1.1.0
56 reactive-var@1.0.5 56 reactive-var@1.0.5
57 reload@1.1.3 57 reload@1.1.3
58 retry@1.0.3 58 retry@1.0.3
59 routepolicy@1.0.5 59 routepolicy@1.0.5
60 service-configuration@1.0.4 60 service-configuration@1.0.4
61 session@1.1.0 61 session@1.1.0
62 sha@1.0.3 62 sha@1.0.3
63 spacebars@1.0.6 63 spacebars@1.0.6
64 spacebars-compiler@1.0.6 64 spacebars-compiler@1.0.6
65 srp@1.0.3 65 srp@1.0.3
66 standard-app-packages@1.0.5 66 standard-app-packages@1.0.5
67 templating@1.1.1 67 templating@1.1.1
68 themeteorchef:bert@1.0.2 68 themeteorchef:bert@1.0.2
69 themeteorchef:jquery-validation@1.13.1 69 themeteorchef:jquery-validation@1.13.1
70 tracker@1.0.7 70 tracker@1.0.7
71 twbs:bootstrap@3.3.4 71 twbs:bootstrap@3.3.4
72 ui@1.0.6 72 ui@1.0.6
73 underscore@1.0.3 73 underscore@1.0.3
74 url@1.0.4 74 url@1.0.4
75 webapp@1.2.0 75 webapp@1.2.0
76 webapp-hashing@1.0.3 76 webapp-hashing@1.0.3
1 # The Meteor Chef - Base (@1.1) 1 # The Meteor Chef - Base (@1.1)
2 A starting point for Meteor apps. 2 A starting point for Meteor apps.
3 3
4 Base is the lazy person's starter kit for Meteor. It includes some commonly used packages (biased to The Meteor Chef) and code for common functionality. This is the starter kit for all Meteor Chef recipes. 4 Base is the lazy person's starter kit for Meteor. It includes some commonly used packages (biased to The Meteor Chef) and code for common functionality. This is the starter kit for all Meteor Chef recipes.
5 5
6 For more detail on updates, [read the Changelog](https://github.com/themeteorchef/base/wiki/Changelog). If you're interested in contributing to Base, checkout the [Contribution wiki](https://github.com/themeteorchef/base/wiki/Contributing-to-Base) to get started. 6 For more detail on updates, [read the Changelog](https://github.com/themeteorchef/base/wiki/Changelog). If you're interested in contributing to Base, checkout the [Contribution wiki](https://github.com/themeteorchef/base/wiki/Contributing-to-Base) to get started.
7 7
8 ### Packages Included 8 ### Packages Included
9 - Accounts (Base) - `meteor add accounts-base` 9 - Accounts (Base) - `meteor add accounts-base`
10 - Accounts (Password) - `meteor add accounts-password` 10 - Accounts (Password) - `meteor add accounts-password`
11 - Audit Argument Checks - `meteor add audit-argument-checks` 11 - Audit Argument Checks - `meteor add audit-argument-checks`
12 - Bert - `meteor add themeteorchef:bert` 12 - Bert - `meteor add themeteorchef:bert`
13 - Bootstrap 3 - `meteor add twbs:bootstrap` 13 - Bootstrap 3 - `meteor add twbs:bootstrap`
14 - Browser Policy - `meteor add browser-policy` 14 - Browser Policy - `meteor add browser-policy`
15 - Check - `meteor add check` 15 - Check - `meteor add check`
16 - Iron Router - `meteor add iron:router` 16 - Iron Router - `meteor add iron:router`
17 - jQuery - `meteor add jquery` 17 - jQuery - `meteor add jquery`
18 - jQuery Validation - `meteor add themeteorchef:jquery-validation` 18 - jQuery Validation - `meteor add themeteorchef:jquery-validation`
19 - NPM - `meteor add meteorhacks:npm` 19 - NPM - `meteor add meteorhacks:npm`
20 - Sass - `meteor add particle4dev:sass@0.3.0` 20 - Sass - `meteor add fourseven:scss`
21 - SSR - `meteor add meteorhacks:ssr` 21 - SSR - `meteor add meteorhacks:ssr`
22 - Underscore - `meteor add underscore` 22 - Underscore - `meteor add underscore`
23 23
24 **Note:** Base also supports loading NPM packages using the `meteorhacks:npm` package. To load NPM packages, add name and version information to `/packages.json` and inside of your file (server only), load the package with `var package = Meteor.npmRequire('package-name');`. For more information, see the [meteorhacks:npm documentation](https://github.com/meteorhacks/npm/). 24 **Note:** Base also supports loading NPM packages using the `meteorhacks:npm` package. To load NPM packages, add name and version information to `/packages.json` and inside of your file (server only), load the package with `var package = Meteor.npmRequire('package-name');`. For more information, see the [meteorhacks:npm documentation](https://github.com/meteorhacks/npm/).
25 25
26 ### File Structure 26 ### File Structure
27 Base comes with a pre-defined file structure common to all projects along with some skeleton files for getting started quickly. Here's what it looks like: 27 Base comes with a pre-defined file structure common to all projects along with some skeleton files for getting started quickly. Here's what it looks like:
28 28
29 ``` 29 ```
30 /root 30 /root
31 ---/.meteor 31 ---/.meteor
32 ---/client 32 ---/client
33 ------/controllers 33 ------/controllers
34 ---------/authenticated 34 ---------/authenticated
35 ------------header.js 35 ------------header.js
36 ---------/public 36 ---------/public
37 ------------login.js 37 ------------login.js
38 ------------recover-password.js 38 ------------recover-password.js
39 ------------reset-password.js 39 ------------reset-password.js
40 ------------signup.js 40 ------------signup.js
41 ------/helpers 41 ------/helpers
42 ---------helpers-ui.js 42 ---------helpers-ui.js
43 ------/includes 43 ------/includes
44 ---------_header.html 44 ---------_header.html
45 ------/layouts 45 ------/layouts
46 ---------layout-default.html 46 ---------layout-default.html
47 ------/routes 47 ------/routes
48 ---------hooks.js 48 ---------hooks.js
49 ---------routes-authenticated.js 49 ---------routes-authenticated.js
50 ---------routes-global.js 50 ---------routes-global.js
51 ---------routes-public.js 51 ---------routes-public.js
52 ------/stylesheets 52 ------/stylesheets
53 ---------/sass 53 ---------/sass
54 ------------/globals 54 ------------/globals
55 ---------------_extends.scss 55 ---------------_extends.scss
56 ------------/views 56 ------------/views
57 ---------------/public 57 ---------------/public
58 ------------------_login.scss 58 ------------------_login.scss
59 ---------application.scss 59 ---------application.scss
60 -------/views 60 -------/views
61 ---------/authenticated 61 ---------/authenticated
62 ------------index.html 62 ------------index.html
63 ---------/public 63 ---------/public
64 ------------loading.html 64 ------------loading.html
65 ------------login.html 65 ------------login.html
66 ------------not-found.html 66 ------------not-found.html
67 ------------recover-password.html 67 ------------recover-password.html
68 ------------reset-password.html 68 ------------reset-password.html
69 ------------signup.html 69 ------------signup.html
70 ---/collections 70 ---/collections
71 ------example.js 71 ------example.js
72 ------users.js 72 ------users.js
73 ---/packages 73 ---/packages
74 ------ (See List Above) 74 ------ (See List Above)
75 ---/public 75 ---/public
76 ------/images 76 ------/images
77 ---/server 77 ---/server
78 ------/admin 78 ------/admin
79 ---------/startup-functions 79 ---------/startup-functions
80 ------------browser-policies.js 80 ------------browser-policies.js
81 ------------test-accounts.js 81 ------------test-accounts.js
82 ---------startup.js 82 ---------startup.js
83 ------/email 83 ------/email
84 ---------/templates 84 ---------/templates
85 ------------reset-password.js 85 ------------reset-password.js
86 ------/methods 86 ------/methods
87 ---------/insert 87 ---------/insert
88 ------------example.js 88 ------------example.js
89 ---------/read 89 ---------/read
90 ------------example.js 90 ------------example.js
91 ---------/remove 91 ---------/remove
92 ------------example.js 92 ------------example.js
93 ---------/update 93 ---------/update
94 ------------example.js 94 ------------example.js
95 ---------/utility 95 ---------/utility
96 ------------example.js 96 ------------example.js
97 ------/publications 97 ------/publications
98 ---------example.js 98 ---------example.js
99 ---.editorconfig 99 ---.editorconfig
100 ---.gitignore 100 ---.gitignore
101 ---application.html 101 ---application.html
102 ---package.json 102 ---package.json
103 ---packages.json 103 ---packages.json
104 ---README.MD (this file) 104 ---README.MD (this file)
105 ---settings-development.json 105 ---settings-development.json
106 ---settings-production.json 106 ---settings-production.json
107 ---smart.json (added by Meteor) 107 ---smart.json (added by Meteor)
108 ---smart.lock (added by Meteor) 108 ---smart.lock (added by Meteor)
109 ``` 109 ```
110 110
111 ### JavaScript & CSS 111 ### JavaScript & CSS
112 Prior to v2.0.0, Base was written in CoffeeScript. At the request of the community, Base was ported _back_ to native JavaScript. 112 Prior to v2.0.0, Base was written in CoffeeScript. At the request of the community, Base was ported _back_ to native JavaScript.
113 113
114 CSS in Base is written using [Sass](http://sass-lang.com). 114 CSS in Base is written using [Sass](http://sass-lang.com).
115 115
116 ### Functionality 116 ### Functionality
117 117
118 ###### Configuration 118 ###### Configuration
119 Base includes a pattern for managing your API keys, connection strings, and other configuration information using two files: `settings-development.json` and `settings-production.json`. This pattern separates your development and production configuration into two separate files for the sake of security. 119 Base includes a pattern for managing your API keys, connection strings, and other configuration information using two files: `settings-development.json` and `settings-production.json`. This pattern separates your development and production configuration into two separate files for the sake of security.
120 120
121 Per [Josh Owen's article](http://joshowens.me/environment-settings-and-security-with-meteor-js/), it's considered "bad practice" to check your production keys into your repo (private or otherwise). Base accounts for this by giving you two separate files, but also specifies that your `settings-production.json` file should be ignored by git in `.gitignore`. 121 Per [Josh Owens' article](http://joshowens.me/environment-settings-and-security-with-meteor-js/), it's considered "bad practice" to check your production keys into your repo (private or otherwise). Base accounts for this by giving you two separate files, but also specifies that your `settings-production.json` file should be ignored by git in `.gitignore`.
122 122
123 This means that keys that are only used for testing or development purposes can be placed in `settings-development.json`, while keys used in your production application should be placed in `settings-production.json`. Sharing and management of `settings-production.json` should be done on a person-to-person basis and _not_ made globally accessible. 123 This means that keys that are only used for testing or development purposes can be placed in `settings-development.json`, while keys used in your production application should be placed in `settings-production.json`. Sharing and management of `settings-production.json` should be done on a person-to-person basis and _not_ made globally accessible.
124 124
125 ###### Startup & Deployment 125 ###### Startup & Deployment
126 A tip picked up from [Gerard Sychay at Differential](http://blog.differential.com/use-package-json-in-your-meteor-app-for-fun-profit/), Base makes use of the NPM `package.json` convention to make startup and deployment super easy. Within `package.json`, three scripts have been defined for you: 126 A tip picked up from [Gerard Sychay at Differential](http://blog.differential.com/use-package-json-in-your-meteor-app-for-fun-profit/), Base makes use of the NPM `package.json` convention to make startup and deployment super easy. Within `package.json`, three scripts have been defined for you:
127 127
128 1. `npm start` - Starts your Meteor server locally with `settings-development.json` in tow. Equivalent to typing out `meteor --settings settings-development.json`. 128 1. `npm start` - Starts your Meteor server locally with `settings-development.json` in tow. Equivalent to typing out `meteor --settings settings-development.json`.
129 2. `npm staging` - Deploys your Meteor app to a [Modulus](http://modulus.io) server defined as your "Staging" environment. This requires you to have a Modulus account set up and a server titled "Staging" set up. You can customize this to match your own naming conventions. This also automatically sets your `METEOR_SETTINGS` environment variable on Modulus equal to the contents of your `settings-development.json` file so you don't have to do it by hand. 129 2. `npm staging` - Deploys your Meteor app to a [Modulus](http://modulus.io) server defined as your "Staging" environment. This requires you to have a Modulus account set up and a server titled "Staging" set up. You can customize this to match your own naming conventions. This also automatically sets your `METEOR_SETTINGS` environment variable on Modulus equal to the contents of your `settings-development.json` file so you don't have to do it by hand.
130 3. `npm production` - Deploys your Meteor app to a [Modulus](http://modulus.io) server defined as your "Production" environment. This requires you to have a Modulus account set up and a server titled "Production" set up. You can customize this to match your own naming conventions. This also automatically sets your `METEOR_SETTINGS` environment variable on Modulus equal to the contents of your `settings-production.json` file so you don't have to do it by hand. 130 3. `npm production` - Deploys your Meteor app to a [Modulus](http://modulus.io) server defined as your "Production" environment. This requires you to have a Modulus account set up and a server titled "Production" set up. You can customize this to match your own naming conventions. This also automatically sets your `METEOR_SETTINGS` environment variable on Modulus equal to the contents of your `settings-production.json` file so you don't have to do it by hand.
131 131
132 ###### Bootstrap (@3.2.1) 132 ###### Bootstrap (@3.2.1)
133 Base makes use of the [Bootstrap](http://getbootstrap.com) front-end Framework. It may not be your bag of chips and is *definitely not required*. If you want to swap it out, you'll need to unhook the markup in each of the included template files in `/client/views` and uninstall the `twbs:bootstrap` package by running `meteor remove twbs:bootstrap` in your terminal. 133 Base makes use of the [Bootstrap](http://getbootstrap.com) front-end Framework. It may not be your bag of chips and is *definitely not required*. If you want to swap it out, you'll need to unhook the markup in each of the included template files in `/client/views` and uninstall the `twbs:bootstrap` package by running `meteor remove twbs:bootstrap` in your terminal.
134 134
135 In respect to UI, Base uses Bootstrap's `.navbar` element, as well as its `.container` and a few `.row`/`.col-<size>-<columns>` wrappers. You'll also find the `.btn` class and its modifiers (`.success, .warning, etc.`) in use throughout the app. All of these implementations are merely presentational and can be changed (or removed) as you see fit. 135 In respect to UI, Base uses Bootstrap's `.navbar` element, as well as its `.container` and a few `.row`/`.col-<size>-<columns>` wrappers. You'll also find the `.btn` class and its modifiers (`.success, .warning, etc.`) in use throughout the app. All of these implementations are merely presentational and can be changed (or removed) as you see fit.
136 136
137 ###### Basic Routing 137 ###### Basic Routing
138 Base comes with a collection of pre-defined routes and templates for common functionality. Base also includes a set of common route filters for managing user access. Routes bundled include: 138 Base comes with a collection of pre-defined routes and templates for common functionality. Base also includes a set of common route filters for managing user access. Routes bundled include:
139 139
140 ``` 140 ```
141 - / (Authenticated) 141 - / (Authenticated)
142 - /login (Public) 142 - /login (Public)
143 - /recover-password (Public) 143 - /recover-password (Public)
144 - /reset-password (Public) 144 - /reset-password (Public)
145 - /signup (Public) 145 - /signup (Public)
146 ``` 146 ```
147 147
148 A UI helper called `currentRoute` has been added to Base which allows you to add an `active` class to menu items in your navigation to reflect the user's current location. 148 A UI helper called `currentRoute` has been added to Base which allows you to add an `active` class to menu items in your navigation to reflect the user's current location.
149 149
150 A collection of hooks has also been added to Base to control route access based on different conditions (e.g. whether a user is logged in or not). 150 A collection of hooks has also been added to Base to control route access based on different conditions (e.g. whether a user is logged in or not).
151 151
152 ###### Authentication 152 ###### Authentication
153 Base includes a complete authentication pattern complete with: 153 Base includes a complete authentication pattern complete with:
154 154
155 - Login (at /login) 155 - Login (at /login)
156 - Logout (no path, implemented as a dropdown item/click event in /client/controllers/header.js) 156 - Logout (no path, implemented as a dropdown item/click event in /client/controllers/header.js)
157 - Password Recovery (at /recover-password and /reset-password) 157 - Password Recovery (at /recover-password and /reset-password)
158 - Signup (at /signup) 158 - Signup (at /signup)
159 159
160 ###### Example Collection/Publication/Subscription 160 ###### Example Collection/Publication/Subscription
161 Base includes a collection called `Example`, along with a publication and subscription pattern to show moving data from the server to the client. Publications are defined in `/server/publications/example.js` and a subscription is demonstrated on the `index` route in `/client/routes/routes-authenticated.js`. 161 Base includes a collection called `Example`, along with a publication and subscription pattern to show moving data from the server to the client. Publications are defined in `/server/publications/example.js` and a subscription is demonstrated on the `index` route in `/client/routes/routes-authenticated.js`.
162 162
163 ###### Validation 163 ###### Validation
164 Base includes support for client-side validation via [jQuery Validation](http://jqueryvalidation.org). Validation is provided for all public templates: login, signup, recover password, and reset password. 164 Base includes support for client-side validation via [jQuery Validation](http://jqueryvalidation.org). Validation is provided for all public templates: login, signup, recover password, and reset password.
165 165
166 ###### Alerts 166 ###### Alerts
167 Base includes support for fixed bar (top and bottom) and growl-style alerts on the client via [`themeteorchef:bert`](https://atmospherejs.com/themeteorchef/bert). 167 Base includes support for fixed bar (top and bottom) and growl-style alerts on the client via [`themeteorchef:bert`](https://atmospherejs.com/themeteorchef/bert).
168 168
169 ###### Automatic Admin User Creation 169 ###### Automatic Admin User Creation
170 When developing, having a handful of user accounts to test your application with can come in handy. Base comes with an automated account generation script located in `server/admin/startup.js` that creates accounts based on an array of specified users. **Note: by default this creates one Admin user on server startup, so make sure to customize or remove this user so the public can't access your app**. 170 When developing, having a handful of user accounts to test your application with can come in handy. Base comes with an automated account generation script located in `server/admin/startup.js` that creates accounts based on an array of specified users. **Note: by default this creates one Admin user on server startup, so make sure to customize or remove this user so the public can't access your app**.
171 171