Back Office Services you own this product

basic SQL • basic Java • basic JSON • Spring Data JPA Repositories • HTTP and REST basics • basic JUnit 5, SpringTest and TestContainers
skills learned
Add query result pagination • Implement queries with JPQL aggregate functions. Import csv files into a database in a transaction, use domain events to send messages to a JMS Queue.
Potito Coluccelli
1 week · 8-10 hours per week · BEGINNER

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!


5, 10 or 20 seats+ for your team - learn more

Look inside

BestInsurance has a rapidly growing customer base and happy front-office employees, thanks to a newly built API that lets customers subscribe to policies and lets front-office employees narrow their searches with custom filters. But the back-office staff is unhappy with the high latency of the user interface. As a backend developer, you’ll solve this problem by adding pagination with Spring Data JPA, preventing the page from loading all the customer data at once. You’ll use JPQL to add aggregate functions that return information the back office needs, such as revenue and customer count by state. You’ll implement a REST service for uploading policy subscription data provided in CSV format and importing it into your database. You’ll also leverage domain events for sending messages when subscriptions are saved, updated, or deleted. When you’re done, you’ll know how to add REST API services, and the back-office employees will thank you for making their jobs easier!

This project is designed for learning purposes and is not a complete, production-ready application or solution.

project author

Potito Coluccelli

Potito Coluccelli is a senior software engineer and team leader at Econocom in Italy, where he works on service-oriented architecture design and implementation as well as supporting customers as they transition from monolithic to microservice architectures. Previously he worked as a middleware consultant at Red Hat and supported companies in Italy and the EU with JEE application design, development, maintenance, and testing. With his team, he created a trade surveillance tool for Commodity Markets that’s been adopted by major energy providers in Italy.


This liveProject is for beginner and intermediate Java programmers interested in learning how to add useful REST services, such as pagination and aggregate functions, that improve user experience. To begin these liveProjects you’ll need to be familiar with the following:

  • Basic Java
  • Basic SQL
  • Basic JSON
  • Basic JUnit 5 and SpringTest
  • Spring Boot 3.1.x stable version
  • Your favorite IDE
  • Basic use of the command line (or equivalent best tools for the operating system you’re using)
  • Basic knowledge of the REST paradigm and HTTP
  • Implement Spring Data JPA Repository
  • Implement JUnit test cases with SpringTest, MockMvc and TestContainers


You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.

choose your plan


only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Back Office Services project for free