We had a project kickoff meeting this morning to discuss tools to be used. This is a consumer-facing single-page Web application (SPA) that will also have a back-office part to be used by the business owners. During this meeting our engineers suggested a list of software. This list will grow, but I thought you might be interested to see it as it is now.
1. Web designer uses Balsamiq Mockups for prototyping and Twitter’s Bootstrap framework for styled components. We’ll use responsive design principles, so the app will look good on the mobile devices too.
2. Build tool: Gradle
3. Continuous Integration: Team City (JetBrains). We’ll configure automatic builds, unit tests, code coverage findbug.
4. Version control system: Git. The hosting site: Bitbucket. We’ll also use Bitbucket’s Wiki for doc, and Issue tracking feature for bugs.
5. Java Spring 4 framework. The version 4 is still a release candidate, but our engineers are convinced that it’s safe. IMO it’s a little too risky given the fact that the application should go live in 3 months, but we can always fallback to the earlier release. In particular, we’ll be using the following Spring modules: Core, MVC, Data (maybe), Boot, and Security.
6. Consumer-facing front end will be developed in HTML5 using AngularJS and Bootstrap frameworks.
7. The Back-office UI: HTML5 ExtJS framework.
8. Data persistence: MySQL 5.6
9. ORM: either none or MyBatis
10. Code Generators: Apache CXF for WSDL schema, our home grown Clear Data Builder for back office Ext JS-Java CRUD generation
11. Full text search: Apache Solr
12. Web Servers: Nginx server plus servlet container Apache Tomcat 7
13. Deployment – one self-executable Jar with embedded servlet container (Apache Tomcat)
14. Exploring monitoring of servers with Newrelic and Takipi.
15. IDE: One developer uses IntelliJ Idea, another – Eclipse IDE