diff --git a/.bowerrc b/.bowerrc index 84392f7..7a849cb 100644 --- a/.bowerrc +++ b/.bowerrc @@ -1,4 +1,4 @@ { - "directory": "client/components/", + "directory": "public/components/", "timeout": 20000 } diff --git a/package.json b/package.json index 5a6540b..157d638 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,13 @@ -{ - "private": true, - "dependencies": { - "angular": "1.3.8", - "todomvc-common": "^1.0.1", - "todomvc-app-css": "^1.0.1" - } -} +{ + "private": true, + "scripts": { + "start": "node server" + }, + "dependencies": { + "ejs": "2.4.2", + "express": "4.13.4", + "mongoose": "4.4.20", + "todomvc-app-css": "^1.0.1", + "todomvc-common": "^1.0.1" + } +} diff --git a/client/components/angular/.bower.json b/public/components/angular/.bower.json similarity index 100% rename from client/components/angular/.bower.json rename to public/components/angular/.bower.json diff --git a/client/components/angular/LICENSE.md b/public/components/angular/LICENSE.md similarity index 100% rename from client/components/angular/LICENSE.md rename to public/components/angular/LICENSE.md diff --git a/client/components/angular/README.md b/public/components/angular/README.md similarity index 100% rename from client/components/angular/README.md rename to public/components/angular/README.md diff --git a/client/components/angular/angular-csp.css b/public/components/angular/angular-csp.css similarity index 100% rename from client/components/angular/angular-csp.css rename to public/components/angular/angular-csp.css diff --git a/client/components/angular/angular.js b/public/components/angular/angular.js similarity index 100% rename from client/components/angular/angular.js rename to public/components/angular/angular.js diff --git a/client/components/angular/angular.min.js b/public/components/angular/angular.min.js similarity index 100% rename from client/components/angular/angular.min.js rename to public/components/angular/angular.min.js diff --git a/client/components/angular/angular.min.js.gzip b/public/components/angular/angular.min.js.gzip similarity index 100% rename from client/components/angular/angular.min.js.gzip rename to public/components/angular/angular.min.js.gzip diff --git a/client/components/angular/angular.min.js.map b/public/components/angular/angular.min.js.map similarity index 100% rename from client/components/angular/angular.min.js.map rename to public/components/angular/angular.min.js.map diff --git a/client/components/angular/bower.json b/public/components/angular/bower.json similarity index 100% rename from client/components/angular/bower.json rename to public/components/angular/bower.json diff --git a/client/components/angular/index.js b/public/components/angular/index.js similarity index 100% rename from client/components/angular/index.js rename to public/components/angular/index.js diff --git a/client/components/angular/package.json b/public/components/angular/package.json similarity index 100% rename from client/components/angular/package.json rename to public/components/angular/package.json diff --git a/client/css/base.css b/public/css/base.css similarity index 100% rename from client/css/base.css rename to public/css/base.css diff --git a/client/css/index.css b/public/css/index.css similarity index 100% rename from client/css/index.css rename to public/css/index.css diff --git a/client/js/app.js b/public/js/app.js similarity index 100% rename from client/js/app.js rename to public/js/app.js diff --git a/client/js/controllers/todoCtrl.js b/public/js/controllers/todoCtrl.js similarity index 100% rename from client/js/controllers/todoCtrl.js rename to public/js/controllers/todoCtrl.js diff --git a/client/js/directives/todoFocus.js b/public/js/directives/todoFocus.js similarity index 100% rename from client/js/directives/todoFocus.js rename to public/js/directives/todoFocus.js diff --git a/client/js/services/todoStorage.js b/public/js/services/todoStorage.js similarity index 100% rename from client/js/services/todoStorage.js rename to public/js/services/todoStorage.js diff --git a/client/js/todomvc-common/base.js b/public/js/todomvc-common/base.js similarity index 100% rename from client/js/todomvc-common/base.js rename to public/js/todomvc-common/base.js diff --git a/server.js b/server.js new file mode 100644 index 0000000..47271d0 --- /dev/null +++ b/server.js @@ -0,0 +1,35 @@ + +'use strict'; + +var express = require('express'), + path = require('path'), + fs = require('fs'), + config = require('./server/config/config'), + mongoose = require('mongoose'); + +/** + * Main application file + */ + +// Default node environment to development +process.env.NODE_ENV = process.env.NODE_ENV || 'development'; + +// Connect to database +var db = mongoose.connect(config.mongo.uri, config.mongo.options); + +var app = express(); + +// Express settings +require('./server/config/express')(app); + +// Routing +require('./server/routes')(app); + + +// Start server +app.listen(config.port, function () { + console.log('Express server listening on port %d in %s mode', config.port, app.get('env')); +}); + +// Expose app +exports = module.exports = app; diff --git a/server/config/config.js b/server/config/config.js new file mode 100644 index 0000000..04d7adf --- /dev/null +++ b/server/config/config.js @@ -0,0 +1,20 @@ +'use strict'; + +var rootPath = require('path').normalize(__dirname + '/../..'); + +/** + * Load environment configuration + */ +module.exports = { + root: rootPath, + env: 'development', + port: process.env.PORT || 3000, + mongo: { + uri: 'mongodb://localhost/todo-dev', + options: { + db: { + safe: true + } + } + } +}; diff --git a/server/config/express.js b/server/config/express.js new file mode 100644 index 0000000..47cb8a7 --- /dev/null +++ b/server/config/express.js @@ -0,0 +1,13 @@ +'use strict'; + +var express = require('express'), + path = require('path'), + config = require('./config'); +/** + * Express configuration + */ +module.exports = function(app) { + app.use(express.static(path.join(config.root, 'public'))); + app.engine('html', require('ejs').renderFile); + app.set('view engine', 'html'); +}; diff --git a/server/controllers/index.js b/server/controllers/index.js new file mode 100644 index 0000000..3fe5344 --- /dev/null +++ b/server/controllers/index.js @@ -0,0 +1,10 @@ +'use strict'; + +/** + * Send our single page app + */ +module.exports = { + index : function(req, res) { + res.render('index'); + } +}; diff --git a/server/controllers/todos.js b/server/controllers/todos.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes.js b/server/routes.js new file mode 100644 index 0000000..2c51024 --- /dev/null +++ b/server/routes.js @@ -0,0 +1,14 @@ +'use strict'; + +let express = require('express'); +let router = express.Router(); + +let index = require('./controllers'); + +/** + * Application routes + */ +module.exports = function(app) { + // All other routes to use Angular routing to default page + app.get('/', index.index); +}; diff --git a/client/index.html b/views/index.html similarity index 87% rename from client/index.html rename to views/index.html index 864bcdd..d6dbc07 100644 --- a/client/index.html +++ b/views/index.html @@ -65,11 +65,11 @@
Part of TodoMVC
- - - - - - + + + + + +