153 lines
6.7 KiB
Markdown
Executable File
153 lines
6.7 KiB
Markdown
Executable File
MEDFORMS
|
|
--------
|
|
|
|
[![Build Status](https://travis-ci.org/whitef0x0/medforms.svg?branch=master)](https://travis-ci.org/whitef0x0/medforms)
|
|
[![Dependencies Status](https://david-dm.org/meanjs/mean.svg)](https://david-dm.org/meanjs/mean)
|
|
|
|
Medforms is an opensource *form builder* that can create stunning forms from PDFs or from scratch
|
|
|
|
## Before You Begin
|
|
Before you begin we recommend you read about the basic building blocks that assemble a MEAN.JS application:
|
|
* MongoDB - Go through [MongoDB Official Website](http://mongodb.org/) and proceed to their [Official Manual](http://docs.mongodb.org/manual/), which should help you understand NoSQL and MongoDB better.
|
|
* Express - The best way to understand express is through its [Official Website](http://expressjs.com/), which has a [Getting Started](http://expressjs.com/starter/installing.html) guide, as well as an [ExpressJS Guide](http://expressjs.com/guide/error-handling.html) guide for general express topics. You can also go through this [StackOverflow Thread](http://stackoverflow.com/questions/8144214/learning-express-for-node-js) for more resources.
|
|
* AngularJS - Angular's [Official Website](http://angularjs.org/) is a great starting point. You can also use [Thinkster Popular Guide](http://www.thinkster.io/), and the [Egghead Videos](https://egghead.io/).
|
|
* Node.js - Start by going through [Node.js Official Website](http://nodejs.org/) and this [StackOverflow Thread](http://stackoverflow.com/questions/2353818/how-do-i-get-started-with-node-js), which should get you going with the Node.js platform in no time.
|
|
|
|
|
|
## Prerequisites
|
|
Make sure you have installed all of the following prerequisites on your development machine:
|
|
* Node.js - [Download & Install Node.js](http://www.nodejs.org/download/) and the npm package manager. If you encounter any problems, you can also use this [GitHub Gist](https://gist.github.com/isaacs/579814) to install Node.js.
|
|
* MongoDB - [Download & Install MongoDB](http://www.mongodb.org/downloads), and make sure it's running on the default port (27017).
|
|
* Bower - You're going to use the [Bower Package Manager](http://bower.io/) to manage your front-end packages. Make sure you've installed Node.js and npm first, then install bower globally using npm:
|
|
|
|
```bash
|
|
$ npm install -g bower
|
|
```
|
|
|
|
* Grunt - You're going to use the [Grunt Task Runner](http://gruntjs.com/) to automate your development process. Make sure you've installed Node.js and npm first, then install grunt globally using npm:
|
|
|
|
```bash
|
|
$ npm install -g grunt-cli
|
|
```
|
|
|
|
## Downloading MEAN.JS
|
|
There are several ways you can get the MEAN.JS boilerplate:
|
|
|
|
### Yo Generator
|
|
The recommended way would be to use the [Official Yo Generator](http://meanjs.org/generator.html), which generates the latest stable copy of the MEAN.JS boilerplate and supplies multiple sub-generators to ease your daily development cycles.
|
|
|
|
### Cloning The GitHub Repository
|
|
You can also use Git to directly clone the MEAN.JS repository:
|
|
```bash
|
|
$ git clone https://github.com/whitef0x0/medforms.git medforms
|
|
```
|
|
This will clone the latest version of the Medforms repository to a **medforms** folder.
|
|
|
|
|
|
## Quickstart
|
|
|
|
Install dependencies first.
|
|
```bash
|
|
$ npm install
|
|
$ bower install
|
|
```
|
|
|
|
Then run your application using grunt.
|
|
```bash
|
|
$ grunt
|
|
```
|
|
|
|
Your application should run on port 3000, so in your browser just go to [http://localhost:3000](http://localhost:3000)
|
|
|
|
|
|
## Testing Your Application
|
|
You can run the full test suite included with MEAN.JS with the test task:
|
|
|
|
```
|
|
$ grunt test
|
|
```
|
|
|
|
This will run both the server-side tests (located in the app/tests/ directory) and the client-side tests (located in the public/modules/*/tests/).
|
|
|
|
To execute only the server tests, run the test:server task:
|
|
|
|
```
|
|
$ grunt test:server
|
|
```
|
|
|
|
And to run only the client tests, run the test:client task:
|
|
|
|
```
|
|
$ grunt test:client
|
|
```
|
|
|
|
## Development and deployment With Docker
|
|
|
|
* Install [Docker](http://www.docker.com/)
|
|
* Install [Docker-Machine](https://docs.docker.com/machine/)
|
|
|
|
* Local development and setup with dockermachine:
|
|
```bash
|
|
$ curl -L https://github.com/docker/machine/releases/download/v0.3.0/docker-machine_darwin-amd64 > /usr/local/bin/docker-machine
|
|
$ chmod +x /usr/local/bin/docker-machine
|
|
$ docker-machine create -d virtualbox dev
|
|
$ docker-machine env dev
|
|
$ eval "$(docker-machine env dev)"
|
|
```
|
|
|
|
* Local development and testing with just Docker:
|
|
```bash
|
|
$ docker build -t medforms .
|
|
$ docker run -p 27017:27017 -d --name db mongo
|
|
$ docker run -p 3000:3000 --link db:db_1 mean
|
|
$
|
|
```
|
|
|
|
* To enable live reload, forward port 35729 and mount /app and /public as volumes:
|
|
```bash
|
|
$ docker run -p 3000:3000 -p 35729:35729 -v /Users/mdl/workspace/mean-stack/mean/public:/home/mean/public -v /Users/mdl/workspace/mean-stack/mean/app:/home/mean/app --link db:db_1 mean
|
|
```
|
|
|
|
## Running in a secure environment
|
|
To run your application in a secure manner you'll need to use OpenSSL and generate a set of self-signed certificates. Unix-based users can use the following command:
|
|
```bash
|
|
$ sh ./scripts/generate-ssl-certs.sh
|
|
```
|
|
Windows users can follow instructions found [here](http://www.websense.com/support/article/kbarticle/How-to-use-OpenSSL-and-Microsoft-Certification-Authority).
|
|
After you've generated the key and certificate, place them in the *config/sslcerts* folder.
|
|
|
|
|
|
## Community
|
|
* Use the [Official Website](http://meanjs.org) to learn about changes and the roadmap.
|
|
* Join #meanjs on freenode.
|
|
* Discuss it in the new [Google Group](https://groups.google.com/d/forum/meanjs)
|
|
* Ping us on [Twitter](http://twitter.com/meanjsorg) and [Facebook](http://facebook.com/meanjs)
|
|
|
|
## Live Example
|
|
Browse the live MEAN.JS example on [http://meanjs.herokuapp.com](http://meanjs.herokuapp.com).
|
|
|
|
## Credits
|
|
Inspired/built off great work of the meanjs team [MeanJS](https://github.com/mean/)
|
|
|
|
## License
|
|
(The MIT License)
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
a copy of this software and associated documentation files (the
|
|
'Software'), to deal in the Software without restriction, including
|
|
without limitation the rights to use, copy, modify, merge, publish,
|
|
distribute, sublicense, and/or sell copies of the Software, and to
|
|
permit persons to whom the Software is furnished to do so, subject to
|
|
the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|