Skip to content

Temporary warehouseman/meteor-mantra-kickstarter

License

Notifications You must be signed in to change notification settings

dude-awap/mmks

 
 

Repository files navigation

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 "[email protected]";
    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 [email protected]:yourse1f-yourorg/mmks.git;
    cd meteor-mantra-kickstarter;
    
    
  6. Switch over to our branch :

    git checkout apollo;
    git branch # verify being on apollo;
    
    
  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" : "[email protected]" });
     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.

About

Temporary warehouseman/meteor-mantra-kickstarter

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 67.4%
  • HTML 18.0%
  • Shell 10.2%
  • Gherkin 4.2%
  • CSS 0.2%