React & Spring Boot Sandbox

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:
  • 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:
    • Webpack module bundler is used to bundle JS code
    • Babel JS compiler is used to allow latest ES6 Javascript features
    • Eslint is used for as JS linting utility
  • 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 🙂

2 thoughts on “React & Spring Boot Sandbox

  1. 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)

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s