Implementing Validation in Patient, Order, and Cart Modules

Business Scenario

The objective of this lab is to implement input validation for Patient, Order, and CartItem modules using Spring Boot validation annotations. This ensures that only valid and meaningful data is processed by the backend system.

Frontend applications allow users to:

  • Add items to cart

  • Enter patient details

  • Place orders

Introduction (Frontend Perspective)

Without validation:

  • Invalid cart quantities may be stored
  • Incorrect patient data may be saved
  • Orders may contain incomplete or incorrect details

Validation ensures:

  • Clean and accurate data

  • Improved user experience

  • Prevention of runtime errors

1

Add Validation Dependency

Ensure the following dependency is present in pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

Dependency added

2

Apply Validation in Entities

Patient Entity

  • @NotBlank → for name

  • @Min → for age

  • @NotBlank → for address

Order Entity

  • @Positive → for totalAmount

  • @NotBlank → for status

  • @NotBlank → for paymentStatus

  • @NotNull → for createdAt

CartItem Entity

  • @Min → for quantity

  • @NotNull → for user

  • @NotNull → for medicine

3

Enable Validation in Controller

Add @Valid annotation in POST methods:

Example:

@PostMapping
public CartItem add(@Valid @RequestBody CartItem item) {
    return service.addToCart(item);
}

Apply same for:

  • PatientController

  • OrderController

Controller validation

Validation Flow

5

  1. Request comes from frontend/Postman
  2. Controller receives request
  3. Validation is applied
  4. If valid → Service executes
  5. If invalid → Error response returned

Test APIs using Postman

4

1. Patient Validation

Valid JSON

{
  "name": "Ramesh",
  "age": 30,
  "address": "Mumbai"
}

Invalid JSON

{
  "name": "",
  "age": 0,
  "address": ""
}

2. Order Validation

Valid JSON

{
  "totalAmount": 500,
  "status": "PLACED",
  "paymentStatus": "PAID",
  "createdAt": "2026-06-10T10:00:00"
}

Invalid JSON

{
  "totalAmount": -100,
  "status": "",
  "paymentStatus": "",
  "createdAt": null
}

3. CartItem Validation

Valid JSON

{
  "quantity": 2,
  "user": { "id": 1 },
  "medicine": { "id": 1 }
}

Invalid JSON

{
  "quantity": 0,
  "user": null,
  "medicine": null
}

Postman validation responses

Global Exception Handling

6

Use @RestControllerAdvice to handle validation errors:

  • Returns clean error messages

  • Improves API response structure

  • Error response

Run Application

7

8

  • Start Spring Boot application

  • Verify validation is working

  • Application running

Verify Results

  • Valid data → saved successfully

  • Invalid data → rejected with error messages

  • Database contains only correct data

  • Database records

Pre-Lab Preparation

  • Explore different restaurants
  • View food items and menus

  • Add items to cart

  • Place orders online

Topic : Weaving the world of Web

1) Navigating the world of Web

2) Building Blocks of Website,

3) Tag Titans: Fundamental Web Construct.

git pull origin branchName

Git Pull

Task 1: Understanding BRD

Before you start building anything, you need to clearly understand what the client actually wants.So, let’s begin by understanding the BRD (Business Requirement Document) shared by the client.

BRD Full Form is Business Requirement Details.BRD like a plan for building a house. This plan helps the builder understand what to build.In the same way,BRD tells developers what the client wants to build

Click to download BRD : BiteBox_BRD.pdf

Activity

After going through BRD list down the Core Features and  Web Pages in the tabulated Format as shown Below.

Col 1Col 2Col 3
Row 1
Row 2
Row 3

Formula

Profit = Revenue - Cost

Task 2: Create WireFrame

Now that you understand the requirements, don’t jump into coding yet. Before development, we always visualize the layout.

Now lets  create a simple wireframe for the homepage.

A wireframe is like a layout plan of a house. Before building, you decide where rooms, doors, and windows will be placed.Similarly, a wireframe helps you plan where elements like headers, images, and buttons will appear on a webpage—before adding design or colours.

Task 3: Code Editor Installation

Good work on completing the planning phase.

Now we will start development. Before that, make sure your system is ready with the required tools.

In this step we will install the VS code editor that will help to Write code efficiently,Organize files , Run and test your application

Go to the visual studio code official website  

1

Click to download Homepage Wireframe : Homepage Wireframe

Choose your operating system(windows / Mac) and download the installation file.

Double click on the download app and Accept the agreement and click next

2

It is a long established fact that a reader will be distracted

b

Sub Steps

a

 Double click on the download app and Accept the agreement and click next 

public class MathSample {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        int sum = x + y;
        
        System.out.println("The sum is: " + sum);
    }
}
public class MathSample {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        int sum = x + y;
        
        System.out.println("The sum is: " + sum);
    }
}

public class MathSample {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        int sum = x + y;
        
        System.out.println("The sum is: " + sum);
    }
}

 

Great job!
You have successfully completed your first lab on BiteBox Project Onboarding.

In this lab, you have: Understood the BRD, Created a wireframe, Set up your development environment, Organised your project structure, Run your first program

You are now ready to move to the next stage of development

Checkpoint

Next-Lab Preparation

   Git Push

git push origin branchName

Topic : Working with a Text and Listin HTML

1) Power of HTML text tags
2) Customizing your style with CSS
3) Listing it right using HTML
4) HTML Link up , attributes of tag, block vs inline elements

Text box Width : 887
Business Scenario, Pre-lab Preparation, Next-lab Preparation, Task, Activity, Checkpoint : 90%.
Steps : 1,2,3 [Sub Steps - a,b,c]
Normal Text, Topic Name : 80%
Subtopic : 70%
Code Box font Size : 16px

springboot_lab_11

By Content ITV

springboot_lab_11

  • 6