Blog Series: Spring Boot in Action Part 1: Hello Kotoby

Hello and welcome dear readers to our new blog. Ashnab blog would be a place where we post educational tutorials for a variety of technologies (whatever we are currently learning :).

Let's get right to it shall we...

We will be starting with a blog series to build Kotoby (my books in Arabic) a fully functional social book list sharing application.

Enter Kotoby

As said earlier, Kotoby will be a social book list sharing application, basically a smaller version of goodreads. The first thing one should do when building an application is to define the target feature set. For the first iteration of Kotoby we have selected the following features as our baseline:

  1. Social Login:
    Users should be able to log in using their twitter accounts.

  2. Create Lists:
    Users should be able to create book lists. A list consists of the list name and a number of books associated with the list.

  3. Add Books to Lists:
    Users should be able to add books to their lists by using search .

  4. User Profile Page:
    Users should have a public profile page showing their lists.

Technology Stack

For building Kotboy we will be using Spring Boot http://projects.spring.io/spring-boot/ (more details on specific component picking in a later post). Spring Boot is part of the spring.io platform which has become the de facto standard in building enterprise java applications. Don't let the enterprise roots of spring fool you into thinking it is not suited for today's high productivity, faster iterations, cloud deployment needs. The great people behind the various spring.io projects have created a platform which gives java developers a huge boost in productivity when developing their apps. Spring Boot in particular shows the focus on productivity by removing many of the tedious work a java developer used like:

  • Configuration:

    Spring Boot automatically configures the various components you would need while building your app (data access, web components, batch processing etc.). It also provides a simple way to change these configurations with support for multiple profiles (dev, prod etc.)

  • Self Contained Deployment:

    Deploying your app has never been easier. Spring Boot automatically configures your embedded servlet container of choice (Jetty or Tomcat) and bootstraps it with your application startup. The depolyment artifact is a simple executable jar which includes all the required dependencies.

  • Monitoring and Logging:

    Spring boot includes the Actuator module which exposes a plethora of monitoring and health information as restful services. As for logging it uses Slf4j http://www.slf4j.org/ library with bindings for Logback by default, using other frameworks is as simple as adding the required dependency.

Of course a single blog post cannot attempt to dive into every aspect of Spring Boot so I leave you with a couple of link resources:

Next up in the series we will discuss the components that we will use to build Kotoby as well as build the application skeleton.

Mohamed Osman

Read more posts by this author.