# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# NPM
node_modules

# JS and CSS Deps
src/main/resources/static/js/jquery*
src/main/resources/static/js/angular*
src/main/resources/static/js/bootstrap*
src/main/resources/static/js/core*
src/main/resources/static/js/index.js
src/main/resources/static/css/bootstrap*
