- maven is installed and available in
PATH - git is installed and available in
PATH
For developers:
- node.js is installed
- npm is installed (1.2 doesn't work, 1.4 works fine, check with
npm --version. Install new npm withnpm install -g npmand make sure new npm is inPATHwith higher priority than the old one. - bower is installed (run
npm install -g boweras admin) - gulp is installed (run
npm install -g gulpas admin) - karma is installed (run
npm install -g karmaas admin) - protractor is installed (run
npm install -g protractoras admin) - chrome and firefox (optional) are installed
To run this project from terminal run the following command:
mvn compile tomcat7:run
Intellij idea project has preconfigured maven run configuration.
To generate API documentation run gulp docs
Open src/main/webapp/build/docs/index.html to access it in the browser.
If you want to debug javascript code - set your breakpoints in src/main/webapp/build,
not in src/main/webapp/resources or src/main/webapp/WEB-INF/.
Otherwise it won't work for you.
- MOST IMPORTANT: follow the existing code style
- Make sensible variable names
- Don't use
git pull, usegit pull --rebaseinstead. Merge commits are evil. You can rungit config branch.master.rebase trueto makegit pullbehave likegit pull --rebaseon project basis. - Use commit names in format
[SUBPROJECT] explanationor[FEATURE] explanationor[FILE] explanation. Examples:- [build] Change gulp task
- [front-end] added new feature
- [hotfix] fixed mistake in previous commit
- [test] added new tests
- [hibernate] changed configs
- [travis] removed module
- [heroku] changed env variables
- Use branches:
masterbranch for stable code synced fromdevelopand bugfixes.developbranch for code in development. Should be regularly merged intomaster- feature-branches for single features development. Should be merged into
develop. - git tags on master branch to mark releases (like
v0.4.3orv1.0)
- git (version control)
- maven (back-end task-runner & dependency management system)
- javascript (ES6)
- java/spring (back-end)
- databases (back-end)
- hibernate (back-end)
- npm (front-end dev. dependencies)
- bower (front-end dependencies)
- gulp (front-end task-runner)
- karma (JS unit-test runner)
- protractor (JS end-to-end test runner)
- jasmine (JS test framework)
- angularjs (front-end, MVVM framework)
- requirejs (front-end, runtime dependency management)
- less (front-end, css replacement)
- jsdoc (JavaScript documentation engine)
- REST (back-end + front-end)
- travis (continuous integration)
- heroku (PaaS, used for app deployment)
The following steps will make your work with Intellij Idea more productive
- Set Java version >= 7
- Set JavaScript version - EcmaScript 6
- Install TypeScript community stubs for front-end javascript dependencies.
- maven
- spring
- NodeJS
- gulp
- karma
- hibernate
- LESS
- gitignore (for syntax highlight)
- angularjs
- markdown
- angularjs batarang
- JetBrains IDE support
Also look into src/main/webapp/README.md for front-end documentation.
