UNPKG

egress-bootstrap

Version:

A minimal Express app template for a user account system, built with Twitter's Bootstrap.

97 lines (72 loc) 4.17 kB
egress-bootstrap: start writing a web app already. ==== egress-bootstrap is a minimal [Express](http://expressjs.com/) app template for a user account system, built with Twitter's Bootstrap. I built this with the intention of getting user-based node.js apps scaffolded out quickly. <table> <tr> <th>Branch</th> <th>Build Status</th> </tr> <tr> <td>Master</td> <td> <img src="https://travis-ci.org/shakeelmohamed/egress-bootstrap.png?branch=master" /> </td> </tr> <tr> <td>Develop</td> <td> <img src="https://travis-ci.org/shakeelmohamed/egress-bootstrap.png?branch=develop" /> </td> </tr> </table> ## Usage * The best way to use egress-bootstrap is by using the [Yeoman generator](http://github.com/shakeelmohamed/generator-egress) * This package was not meant to be installed through npm * But, you can run `npm install egress-bootstrap`, then copy the contents of the `node_modules/egress-bootstrap` folder to the root of your project directory and follow the steps below * Or, you can clone this project in the root of your project directory by running `git clone git@github.com/shakeelmohamed/egress-bootstrap.git` * You don't need to declare this module as a dependency in your project's `package.json` file. ## Current problems (marked with a TODO) * There is no significant input validation in place, I suggest using [validator.js](https://github.com/chriso/validator.js) since it's already being used in the browser - located at [public/js/validator.min.js](public/js/validator.min.js). See the current validation in [public/js/egress-validators.js](public/js/egress-validators.js) ### Getting Started: 1. If it does not exist, create a `.env` file in the root directory of this project. 2. Your `.env` file should contain your PostgreSQL connection string in the following format, the `?ssl=true` query parameter is necessary only if your database connection requires SSL (Heroku's databases do) and will default to false if omitted: ``` DATABASE_URL=postgres://<username>:<password>@<host>:<port>/<dbname>?ssl=true ``` This will allow your application to connect to your database 3. Modify the `config` object in `config.js` to modify the application settings. 4. Running `foreman start` will serve the application on the post listed in config.js (defaulting to 5000), and process the `DATABASE_URL` variable, locally. *Alternatively, running `node app.js` will do the same thing if you don't want to use foreman.* ### Deploying to Heroku: 1. Authenticate via the Heroku command line, `heroku login` 2. Set your environment variables on Heroku * If you've already setup your `.env` file as documented above, simply run `heroku config:push` * Otherwise you can run the following command: `heroku config:set DATABASE_URL=postgres://<username>:<password>@<host>:<port>/<dbname>?ssl=true` Then run `heroku config:push` 3. Push your code up to your Heroku app 4. You're done! ## Modifying site content * The `jade` directory contains files for various markup files used to generate web pages. * The `controllers` directory contains files for specific functionality for views, along with the files in `routes` for how they're invoked. * Add additional frontend assets to the `public` directory, then reference them in the files found in `jade/includes`, particularly `head.jade` and `scripts.jade` ## Running the tests * Make sure your environment is setup to run [Zombie.js](http://zombie.labnotes.org/#Infection) * With foreman * run `foreman run npm test` from the root directory of this repository * Without foreman * run `npm test` ## Validating JS and Jade files * Run `grunt` # Dependencies * [Bootstrap v3.1.1](https://github.com/twbs/bootstrap/releases/tag/v3.1.1) * [PostgreSQL](http://www.postgresql.org/) * For other dependencies see [package.json](package.json) # Issues * When in doubt, create an issue! # Contact You can most easily reach me on twitter [@_Shakeel](http://twitter.com/_Shakeel) # License This project is licensed under the terms of [the MIT license](LICENSE)