The Collective Experience (CE) Platform facilitates the creation and operation of collective experience applications. By building to cordova/iOS and distributing this project as a native app, experiences can be launched with native push notifications and users can be targeted by their location for context-specific experiences. Currently, the platform facilitates image and text submissions for experiences.
- Install Meteor
curl https://install.meteor.com/ | sh
- Clone the repository
git clone https://github.com/NUDelta/ce-platform.git
- Navigate to the project folder
cd ce-platform
- Run
meteor npm install
to install local dependencies. - Start the server
meteor
- Deploy application to Galaxy or Heroku, or start a local server.
- Run
npm run build
to generate the xcode project.- Change the server in the
scripts
section withinpackage.json
if you want to run with a local server (localhost:3000
).
- Change the server in the
- Navigate to
../ce-platform-ios
and open the xcodeproject that the build generates. - Build a
.ipa
file with DTR guides using the DeltaLab or Enterprise certificates - Distribute your
.ipa
to testers using diawi.com
Push notifications are currently configured to work with the Enterprise A certificate. Talk to Ryan or Yongsung for more information.
Please read through and follow these guidelines while contributing code to this project.
Refer to the Airbnb Javascript style guide. We're fully into ES6, so make sure you're familiar with using let
over var
, () => {}
function shorthand, and so on.
Use single quotes for Javascript, and double quotes for HTML.
// bad
let foo = "bar";
// good
let foo = 'bar'
Try to fit template names into namespaces describing their functionality and what pages/routes they show up on.
For example, any component that shows up underneath the home
template should be named home_component
. Be
descriptive with names; prefer full words over brevity. Don't include page
at the end, unless it would be ambigious
otherwise.
Sort all imports in this order and into these groups, omitting any groups that don't exist.
- If client page
.js
file, include the matchinghtml
file. Do not includehtml
files in any files except the relevant.js
one.. - Include Meteor packages, starting with
import { Meteor } from 'meteor/meteor'
, followed byimport { Template } from 'meteor/templating'
if you use either of those. - Include files from
imports/
. - If client page
.js
file, include other template components used inside. Docomponents/
first, thenpartials
.
You'll notice that, to match what's recommended from Meteor 1.3, all of the methods in this project have been changed into exported ValidatedMethod
s. See the Github Repo and the guide page about this, but be sure to use these.
-
To clear the database and therefore propagate changes to dummy data in
fixture.js
, set theCLEAR_DB
boolean inconfig.js
to 1 -
if notifications stop working, check that production is set to true in config.push.json
-
to see logs in terminal: heroku logs -t --app ce-platform
-
"quote exceed" might mean the quota of the whole db is exceeded, the limit for free is 500MB