- 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 npm
and make sure new npm is inPATH
with higher priority than the old one. - bower is installed (run
npm install -g bower
as admin) - gulp is installed (run
npm install -g gulp
as admin) - karma is installed (run
npm install -g karma
as admin) - protractor is installed (run
npm install -g protractor
as 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 --rebase
instead. Merge commits are evil. You can rungit config branch.master.rebase true
to makegit pull
behave likegit pull --rebase
on project basis. - Use commit names in format
[SUBPROJECT] explanation
or[FEATURE] explanation
or[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:
master
branch for stable code synced fromdevelop
and bugfixes.develop
branch 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.3
orv1.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.