It’s been a while since I’ve blogged anything here, and this time will be a bit different from the usual.
A few months back I had received interesting feedback in short saying that I seem to be a more “managerial” person rather than technical. Well I perfectly understand reasoning behind it – especially looking at my recent experience – but… I have always considered myself as software engineer first and later leader or manager. That’s why hearing the aforementioned words gave me very powerful trigger. I’ve made a decision to be more and more involved technically within the software projects I run – essentially I am an Engineer and we all love to solve “puzzles” 🙂
It took me some time to get myself up-to-speed in terms of recent full stack technology (that’s probably why the blogging break was so long) but I’m finally there – to some extent doing hands-on work for living again (aka coding 😀 ).
While familiarizing myself with the recent Java/JS tech world I wasn’t able to find good enough boilerplate project that would satisfy all my needs for a starting point application to play with Java & JS. That’s why after initial learning curve was completed I’ve decided to create one and share it here so that everyone can benefit.
The application itself can be found on github – it’s not very complicated. I believe it gives a nice starting point for anybody who wants to dig into modern full-stack Java & Javascript apps. Namely:
- Server side uses Spring Boot as the main application framework to quickly build a production ready app. That includes, but not limited to:
- Spring MVC for exposing REST API
- Spring Data for MongoDB data access layer
- UI side uses React as the main fronted JS framework
- Data storage using MongoDB
- Whole build, bundling and testing is automated using Gradle Wrapper on server side and npm on UI side (detailed instruction on the project page). Additionally worth mentioning for UI side:
- Automated test suites on different level
- Server: JUnit unit and integration tests (covering Rest API and data storage with embedded MongoDB integration)
- UI: Unit and Integration test using Mocha, Enzyme, Chai and Sinon
- App: E2E Nightwatch Tests (based on Selenium Web Driver)
- Application integrated with Travis, open-source continuous integration environment
- Using useful lombok project to limit Java boilerplate code
- Possibility to bundle application as one jar or run server & UI separately
- Javascript hot-reloading with webpack dev server
Hopefully somebody besides myself will find it useful. It’s not perfect as I’m still working on it. Also if you think about nice libs/features/fixes that can be added, please do not hesitate to raise an issue or a pull request 🙂
+1
LikeLike
Very nice set of tools covered.
Recently was doing similar journey for the new technology.
Here: http://fads.today/
It’s a website with top visited wikipedia articles + grouping by category, linking news.
ReactJS front-end: https://github.com/oleksiyp/fads.today (should be looking good on any device)
Spring boot backend part: https://github.com/oleksiyp/fads-today-daily-top-service
Still it’s not very clean and tested code. Mostly my target was to make working and updating site, try few new technologies, have fun with byte stream processing and do it fast(i.e. spend not too much time)
LikeLike