osnova-application-template v0.7.0
#OSNOVA: Client+Server application template
###bI Backbone for Client/Server application for Android/iOS and browsers and node.js with built-in ES6 syntax support. Wow such ready-to-go much time to watch anime.
###Features
- Cordova for building Android/iOS mobile application.
- Cutting edge features of ES6 on any environment.
- Express.js as core of web server.
- Mongoose for working with database.
- Socket.IO for real-time client-server communication.
- Webpack for building client code for web and mobile.
###Install
####via git (preferable)
git clone git@github.com:Noviel/osnova-application-template.git <your-application-name>####or via download
https://github.com/Noviel/osnova-application-template/archive/master.zipand uznip to new project directory.
####or via npm
npm install osnova-application-template and then cut'n'paste content of /node_modules/osnova-application-template to the root of your project.
###Prepare
####Common
- Go to
<your-application-name>root directory. - Delete
.gitdirectory. npm run prepareto install dependencies.- Set in
package.jsoninformation about your application.
####Mobile
You can skip this step, if you don't need mobile application. Android/iOS SDKs must be installed in order to build it.
Install Cordova CLI if u don't have it yet:
npm install -g cordovaInstall Cordova's dependencies:
npm run prepare-mobilePut your application information in /mobile/config.xml.
###Workflow
- Write some cool code in
src/clientandsrc/serverfolders.
index.js in both directories are entry points for web-client/server.
index.mobile.js is an entry point for mobile application.
This system is server-first in some aspects.
Common code used at the server and at the client is treated as more server-side and should be located in src/server/.
On a client you can just write require('../server/your-common-lib') and it will be compiled by Webpack on the build step.
/dev.tools/ - for development stage helpers (Webpack config, Gulp, etc).
/private/- for server-only compiled resources such as templates.
/public/ - for public web client files.
/server/ - for compiled server code.
/mobile/ is location of the Cordova's project.
In /mobile/www/ folder are placed compiled files that ready to be built by Cordova.
###Building
npm run build-serverto build server code.Babeltranspiles server's code and puts it into/server/directory.npm run build-clientto build client code for web.Webpackcompiles from/src/client/to a singleindex.jstranspiled to ES5 byBabeland puts it in/public/js/.npm run build-client-mobileto build client code for mobile.Webpackcompiles from/src/client/to a singleindex.jstranspiled to ES5 byBabeland puts it in/mobile/www/js/.npm run build- build server and web client.
####Mobile
cd mobilecordova build <android|ios>
See more at Cordova's documentation.
###Testing
- Run some tests.
###Publishing
- Launch your application in production.