Are you a python/django developer ? and wants to learn js/nodejs ? then you can startoff with this tutorial. In this part we're going to discuss basic setup, app structuring and also angularJS setup.Part - 11. Installation2. Project Creation3. App Structuring4. Setup AngularJSPart -25. Integrate Database6. Setup Login7. Setup Worker(node celery with Rabbitmq)8. Deploy1. InstalltionInstall nodeInstall npmInstall expressnpm install -g express2. Project CreationCreating using express-generatorexpress <myapp>cd <myapp>npm installTo Start: npm start3. App StructuringRename app.js as manage.js (As you like)In your project find www file under bin folder and changevar app = require('../app');tovar app = require('../manage');Configure templates folderIn your manage.js configure app.set('views', path.join(__dirname, 'views'));views is the directory from where your templates are going to renderedSo you can change this name and make sure this directory exists in your projectapp.set('views', path.join(__dirname, 'templates')); (As you like)Configure templating engineNodeJS supports different template engineshjs (hogan js)ejs (embererd js)jadeNote: All these templates are rendered in server side by nodeIn your manage.js configure the template engine app.set('view engine', 'jade');In above it uses the jade as template engineapp.set('view engine', 'hjs'); (As you like)Note:npm install hjs or npm install jadeConfigure Static folderBy default NodeJS will look into Public for static content, If youwant to use someother folder specify the folder name in the followingapp.use(express.static(path.join(__dirname, 'public')));toapp.use(express.static(path.join(__dirname, 'assets')));Note:The assets folder should exists in your project.Creating AppsIn NodeJS unlike django there is no concpet of apps, everything grouped under what they do. Ex: urls are under routes, templates under views.In your project foldermkdir <app1>mkdir <app2>create,urls.js (empty)models.js (empty)views.js (empty)in your app1 and app2 (As you like)Create folder for your settings and other utils with same as your project name (As you like)in your project,mkdir <yourprojectname>in yourproject/yourprojectname/create a file called settings.js (As you like)Some tweeks to settingsLike django if we want to use some settings or some automated loading based on settings then first we need to maintain some settingsvar CONFIG = { INSTALLED_APPS : [ 'app1', 'app2' ], }module.exports.config = CONFIG;In the above code I'm maintaining installed apps to load urls automatically in manage.js with list of INSTALLED_APPSUnderstanding module.exportsAt this point of time you may be suprised or misconfused about module.exports and what it does.It will export the export the specified thing into where you require it.Autoload urlsMeans it will automatically import urls like django,Import settings in your manage.jsvar settings = require('./<projectname>/settings');load urls.js automatically for(var iter = 0; iter < settings.config.INSTALLED_APPS.length; iter++){ var route = "./" +settings.config.INSTALLED_APPS[iter] + "/urls"; var routes = require(route); app.use(routes); }4. Setup AngularJSNote: Use only the non-minified version of the script libraries of angularjs.include js files assets (assets/js)add script tags in base.hjsRe-Route to client when partial url comes to nodejsif(err.status === undefined || err.status === null){ res.render('base', {'message':'partial_url'}); } else { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }I'll post the part-2 with some basic actions like login setup, database setup and deployment of node app in ec2 very soon.