Implementing User and Medicine Modules using Service Layer

Business Scenario

The objective of this lab is to implement User and Medicine module APIs using a structured service layer approach. The focus is on applying business logic, handling validations, and exposing REST APIs for frontend integration.

1

Service Layer Design

The service layer is responsible for:

  • Applying business logic

  • Validating input data

  • Preventing duplicate record

  • Managing update operations

  • Handling filtering logic

2

Functionalities

1. Add User

  • Ensure email is unique

  • Prevent duplicate registration

2. Get All Users

  • Fetch all users for UI display

3. Update User

  • Update only if user exists

  • Modify all required fields

4. Filter Users by Role

  • Filter based on USER / ADMIN

  • Case-insensitive comparison

Step 3: User Business Logic

Duplicate Email Check

  • Prevents multiple accounts with same email

Safe Update

  • Ensures only valid user is updated

Role Filtering

  • Helps frontend implement role-based dashboards

4

Implement MedicineService

Functionalities

1. Add Medicine

  • Prevent duplicate medicine names

2. Get All Medicines

  • Used to display medicine store

3. Update Medicine

  • Update only if medicine exists

4. Filter by Category

  • Filter medicines like Pain Relief, Vitamins

5

Medicine Business Logic

Duplicate Medicine Prevention

  • Avoids redundant medicine entries

Safe Update Logic

  • Prevents invalid updates

Category Filtering

  • Helps frontend implement search/filter features

6

Controller Layer (User + Medicine)

Controller responsibilities:

  • Accept HTTP requests

  • Pass data to service layer

  • Return responses to frontend

7

 API Endpoints

User APIs

  1. POST /api/users → Add User

  2. GET /api/users → Get All Users

  3. PUT /api/users/{id} → Update User

  4. GET /api/users/filter?role=USER → Filter Users

Medicine APIs

  1. POST /api/medicines → Add Medicine

  2. GET /api/medicines → Get All Medicines

  3. PUT /api/medicines/{id} → Update Medicine

  4. GET /api/medicines/filter?category=Pain Relief → Filter Medicines

8

Run Application

  • Start Spring Boot application

  • Verify APIs are running

  • Application running

9

Test APIs

Test all APIs:

User:

  • POST

  • GET

  • PUT

  • FILTER

Medicine:

  • POST

  • GET

  • PUT

  • FILTER

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

spring_lab_8

By Content ITV

spring_lab_8

  • 6