Skip to content

Latest commit

 

History

History
208 lines (143 loc) · 9.61 KB

README.md

File metadata and controls

208 lines (143 loc) · 9.61 KB

CircleCI Dependency Status devDependency Status Join the chat at https://gitter.im/meteor-mantra-kickstarter/MeteorMantraKickStarter Commitizen friendly

Meteor Mantra Kickstarter

screen register

tl, dr!

This a starter app for Meteor developers who want to structure their work according to the Mantra Specification.

Please feel welcome to comment on any experience you have with it in the on going discussion here ( for reference, prior discussion venues are available here and, even earlier, here )

Features

You get :

Getting started

My default development, test and run environment is a virtual machine running Xubuntu Xenial Xerus, with 12Gb of disk, 3Gb memory and 2 processors.

If you are in a disposable virtual machine with a recent fresh Ubuntu installation, you can follow the steps below more or less blindly. Please, do NOT do this in a machine that has stuff you care about!

  1. Pull in your GitHub SSH credentials from somewhere, for example a sister VM...

    pushd ~/.ssh;
    scp -r 192.168.122.xxx:/home/you/.ssh .;
    popd;
    
    
  2. Ensure dependencies are clean and up-to-date :

    sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y clean && sudo apt-get -y autoremove;
    
    
  3. Install and configure git :

    sudo apt -y install git;
    git config --global user.name "You Yourself";
    git config --global user.email "yourself.yourorg@gmail.com";
    git config --global credential.helper cache;
    git config --global credential.helper 'cache --timeout=36000';
    git config --global push.default simple;
    
    
  4. Make a parent directory and step into it :

    mkdir -p ~/projects;
    cd ~/projects;
    
    
  5. Clone our repository and step into it :

    git clone git@github.com:warehouseman/meteor-mantra-kickstarter.git;
    cd meteor-mantra-kickstarter;
    
    
  6. Switch over to our branch :

    git checkout trunk;
    git branch # verify being on trunk;
    
    
  7. Run the script to set up for development and testing (installs Java, NodeJS, Chimp, Meteor and the project's NodeJS package dependencies) :

    ./install_all.sh;
    
    
  8. Prepare our settings.json :

    cp settings.json.example settings.json;
    nano settings.json;
    
    

    You'll need to go get your Mailgun API key. and your Loggly domain token, then correct these settings :

    >   "HOST_URI": "localhost:3000",
    >   "MAILGUN_DOMAIN": "yourhost.yourpublic.work",
    >   "MAILGUN_KEY": "(As if I'm gonna to leave THAT lying around.)  A valid key has 36 characters and begins with 'key-'.",
    >   "LOGGLY_SUBDOMAIN": "yourwork",
    >   "LOGGLY_TOKEN": " ( not this either ) ",
    
    • Note : If you don't care whether password reset works, you don't need Mailgun. In that case, you can use this as your API key ... key-dead0dead0dead0dead0dead0dead000.
  9. Now we can run Meteor and explore at http://localhost:3000 :

    meteor --settings=settings.json;
    
    

    (The first time through, you may see it terminate with the message killed. Just run it again.)

  10. Open a new terminal window to run linting and unit-tests :

    cd ~/projects/meteor-mantra-kickstarter;
    npm test;
    
    

    A goodly portion of the client side is fully tested using the familiar tools Mocha, Chai and Sinon.

  11. Open another terminal window and run acceptance tests :

    source ~/.profile; # if you have not yet logged out since running './install_all.sh'
    cd ~/projects/meteor-mantra-kickstarter;
    meteor npm run acceptance;
    
    
  12. See the scripts section of package.json for details of other testing and setup commands.

  13. Return to your original terminal window and build for Android :

    export KEYSTORE_PWD="obscuregobbledygook";
    export HOST_SERVER_NAME="http://moon.planet.sun:3000/";
    export ROOT_URL="${HOST_SERVER_NAME}";
    export YOUR_FULLNAME="You Yourself";
    export GITHUB_ORGANIZATION_NAME="YourOrg";
    
    ./build_all.sh;
    
    meteor run --mobile-server=${HOST_SERVER_NAME}  --settings=settings.json;
    
    
  14. Debug in Android in a Xubuntu virtual machine :

    To see how to debug an Android app between two virtual machines watch Meteor / CircleCI Tutorial -- Bonus - Debug your Android App in a Virtual Machine

Other Notes

For my own use, I keep open at least 4 terminal windows, with these commands, ready to run :

  1. For running Meteor

    cd projects/meteor-mantra-kickstarter/
    meteor --settings=settings.json
    
  2. For running acceptance tests

    cd projects/meteor-mantra-kickstarter/
    meteor npm run acceptance
    
  3. For checking changes in the database

    cd projects/meteor-mantra-kickstarter/
    meteor mongo
    # then
     db.users.findOne({ "emails.address" : "member@example.com" });
     db.getCollection("_colors").find({});
    
  4. For searching for keywords in the code

    cd projects/meteor-mantra-kickstarter/
    grep -R --exclude=\*.{css,txt,min.js} --exclude-dir={.git,.meteor,node_modules} "key" -A 1
    

I tend to use the above commands daily. To get quickly ready to work, I open this README page, open the four terminal windows and cut and paste into them.