Spring Boot – University Book Keeping App


″The journey of a thousand miles begins with one step” – Lao Tzu

This is a series of tutorials where we will try to build a production application , in our case a book keeping application. But we will take step by step approach to build the app. Before we start building the app let me give the overview of the requirements.

Region —> University —> College —> Department –> Students,Faculty
There can be different region in a country and each region can have multiple universities. Then there can be N number of colleges under each university . Each College can have multiple Departments and each department can have multiple faculties and students. A student can belong to one department at a time. A faculty can train any number of students and a student can be trained under any number of faculties. So basically the relationship between faculty and student is m-n .


  • Creating/Reading/Updating/Deleting University
  • Creating/Reading/Updating/Deleting College
  • Creating/Reading/Updating/Deleting Department
  • Creating/Reading/Updating/Deleting Faculty and Students

We will go into details of each api one by one . But for now this the entire scope of the application.

Approach:- We will build a Spring Boot based Micro service application. But we won’t add all the features like – logging, transaction management, configurations and others in the first day itself. Instead we will take a step by step approach. So that in the first day we will create the basic skeleton of the project and then gradually add one by one feature to build a almost-prod ready application. I will divide the whole application tutorial into several posts based on individual feature.

Part 1 – Design the solution ( ER Diagram, API Documentation, TDD preparation )
Part 2 – Spring boot micro service application Skeleton project with only Spring REST.
Part 3 – Integrate Spring Data JPA.
Part 4 – Exception and Error Handling.
Part 5 – Improvement Logging with Log4j2
Part 6 – Encrypt the configurations using Jasypt.
Part 7 – Implement Security using spring security.
Part 8 – Implement Caching 
Part 9 – Unit testing with Junit
Part 10 – Integration testing with Cucumber
Part 11 – Dynamic Config change
Part 12 – Rest API documentation using Swagger
Part 13 – Maven Build improvement
Part 14 – JMX with apache jolokia and hawtio
Part 15 – Deploy to docker container
Though i am not sure how frequently i will be posting each tutorial , but i will try my best to keep you guys updated.


Related Post

Leave a Comment

Your email address will not be published. Required fields are marked *

Menu Title