Skip to content

johdah/PodR_Node

Repository files navigation

PodR

Build Status Dependency Status Dependency Status

A podcast manager built in Node.js using Javascript. This is based on the MEAN stack (MongoDB, Node.js, Express, and AngularJS).

Prerequisities

  • Node.js - Download and install Node.js
  • MongoDB - Download and install MongoDB - make sure it runs on the default port (27017)

Tools prerequisities

  • NPM - Node.js package manager, should be installed when you install node.js
  • Bower - Web package manager, installing Bower

Optional

  • Grunt - Download and Install Grunt

Additional Packages

  • 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

Quick install

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

Workers

fetchUpdates

Used to schedule podcast updates

Troubleshooting

Most of the issues that you may encounter can be solved by one of the following tips.

Update NPM, Bower or Grunt

Updating NPM:

$ npm update -g npm

Updating Grunt:

$ npm update -g grunt-cli

Updating Bower:

$ npm update -g bower

Cleaning the NPM or Bower cache

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

Configuration

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.

Environmental Settings

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.

Heroku Quick Deployment

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 ...

Troubleshooting

Atom editor

Unable to walk path

sudo sysctl fs.inotify.max_user_watches=3276888

Credits

  • Using the MEAN stack.

About

A podcast manager built in Node.js using Javascript.

Resources

License

Stars

Watchers

Forks

Packages

No packages published