A podcast manager built in Node.js using Javascript. This is based on the MEAN stack (MongoDB, Node.js, Express, and AngularJS).
- Node.js - Download and install Node.js
- MongoDB - Download and install MongoDB - make sure it runs on the default port (27017)
- NPM - Node.js package manager, should be installed when you install node.js
- Bower - Web package manager, installing Bower
- Grunt - Download and Install Grunt
- Express - Defined as npm module in the package.json file
- Mongoose - Defined as npm module in the package.json file
- Passport - Defined as npm module in the package.json file
- AngularJS - Defined as bower module in the bower.json file
- Twitter Bootstrap - Defined as bower module in the bower.json file
- UI Bootstrap - Defined as bower module in the bower.json file
The quickest way to setup the project is to clone the repository and then doing the following steps:
Install dependencies:
$ npm install
Using Grunt to start the server:
$ grunt
Otherwise you can use:
$ node server
Then open browser and go to:
http://localhost:3000
fetchUpdates
Used to schedule podcast updates
Most of the issues that you may encounter can be solved by one of the following tips.
Updating NPM:
$ npm update -g npm
Updating Grunt:
$ npm update -g grunt-cli
Updating Bower:
$ npm update -g bower
NPM and Bower has a caching system for holding packages that's already installed. Cleaning the cache often solves the common troubles.
NPM Clean Cache:
$ npm cache clean
Bower Clean Cache:
$ bower cache clear
All configuration is specified in the config folder, particularly the config.js file and the env files. Here you will need to specify your application name, database name, as well as hook up and social app keys if you want integraiton with Facebook, GitHub, Google or Twitter.
There are three environments provided by default, development, test, and production. Each of these environments has the following configuration options:
- db - This is the name of the MongoDB database to use, and is set by defaul to mean-dev for the development environment.
- app.name - This is the name of your app or website, and can be different for each environment. You can tell which environment you are running by looking at the TITLE attribute that your app generates.
- Social OAuth Keys - Facebook, GitHub, Google and Twitter. You can specify your own application keys here for each platform: * clientID * clientSecret * callbackURL
To run with a different environment, just specify NODE_ENV as you call grunt:
$ NODE_ENV=test grunt
If you are using node instead of grunt, it is very similar:
$ NDOE_ENV=test node server
NOTE: Running Node.js applications in the production environment enables caching, which is disabled by default in all other environments.
Before you start make sure you have the Heroku toolbelt installed and an accessible mongo db instance.
... git init git add . git commit -m "initial commit" heroku apps:create git push heroku master ...
Unable to walk path
sudo sysctl fs.inotify.max_user_watches=3276888
- Using the MEAN stack.