- I am Manoj Kumar Reddy from Vijayawada, Andhra Pradesh, India.
- A Java Backend Developer with a strong foundation in Java and Spring Boot.
- I'm driven by creating impactful solutions that improve user experiences and solve real-world problems.
-
To
Continue Learning
andGrowing
in the field ofSoftware Development
. -
To
Contribute
toProjects
that make aPositive Impact
.
A RESTful API
for managing tasks, built using Spring Boot
and MySQL
with UUID
as the primary key for tasks.
The system allows users to Create
, Read
, Update
, Delete
Tasks, and automatically update their status from PENDING
to IN_PROGRESS
after a specified time using an Asynchronous Scheduler
.
-
CRUD Operations :-
Create
,Retrieve
,Update
, andDelete
Tasks.- Status find transitions -
PENDING
,IN_PROGRESS
,COMPLETED
-
UUID Support :-
- Tasks are Identified using
Unique
UUIDs
forScalability
.
- Tasks are Identified using
-
Asynchronous Scheduler :-
- Automatically updates the Task Status to
IN_PROGRESS
after5 minutes
from theTask Creation DateTime Stamp
.
- Automatically updates the Task Status to
-
Input Validation and Error Handling :-
- Gracefully Handling of Invalid User Input using
@Valid
Annotation, includingUUID
formats when retrieving. - Implemented
Centralized Exception Handling
in the Application using concepts@RestControllerAdvice
,@ExceptionHandler
Annotations.
- Gracefully Handling of Invalid User Input using
-
Extensible Design :-
- Entity-Based design with clear seperation of concers between
Service
,Repository
, &Controller
Layers
.
- Entity-Based design with clear seperation of concers between
-
Logging :-
- Logging is an essential feature for
Monitoring
andDebugging
the application. - It helps in tracking the flow of the application, recording
Significant Events
, andDiagnosing
Issues
. - In this project, I've Implemented a Comprehensive Logging mechanism (
INFO
,DEBUG
,ERROR
) to capture variousAspects of the Application's Behavior
.
- Logging is an essential feature for
-
DTO Pattern Concept :-
- Employed the
Data Transfer Object (DTO)
pattern to decouple the internal data model. - This ensures the flexibility to refactor entity classes without impacting external clients.
- Employed the
-
Interceptors Concept :-
- A
Request Interceptor
in Spring Boot is a component that intercepts incoming HTTP requests before they are processed by the controller. - It allows you to perform
Pre-Processing Tasks
, such asLogging
,Authentication
,Validation
, or Modifying the request/response, before passing it to the controller.
- A
Example Use Cases :-
- Logging Incoming Requests
- Authentication and Authorization
- Adding Custom Headers
- Request/Response Modification
-
Project Lombok :-
- Project
Lombok
is aJava Library
that reduces boilerplate code, making code easier to read, maintain, and less error-prone. Lombok
usesAnnotations
to replaceRepetitive
,Tedious
, orBoilerplate
Java code.- For example, you can avoid writing
Constructors
with no arguments,toString()
,equals()
, andhashCode()
methods by adding a fewAnnotations
.
- Project
- Ensure you have the following installed on your Local Development System :-
Java 17 or Later
Apache Maven
MySQL Latest Release
(Ensure the Database is Successfully Installed, Up & Running)IDE - Integrated Development Environment Tools Like IntelliJ IDEA, Eclipse, VSCode or STS - Spring Tools Suit
(Ensure anyone of the above IDEs are Installed)Postman or HTTPie Client Tool for Sending HTTP Requests to the backend server
Spring Boot :-
Chosen for it's comprehensive support for buildingProduction-Ready
Application with the best Features and ease of Integrating with other Spring Components.Spring Data JPA :-
Facilitates the data access layer and abstracts much of the boilerplate code.Apache Maven Project/Dependency Management Tool :-
Maven is a popular Open-Source build tool developed by the Apache Group. The tool provides allows developers to build and document the lifecycle framework. It is primarily used to simplify the Java development process by automating the build process, managing project dependencies (like downloading necessary libraries
), and providing a standardized way to build, test, and package applications, essentially making it easier for developers to manage complex project structures and dependencies without manually handling each library download and configuration.MySQL Database :-
Chosen for it'sRobustness
,Performance
and support forAdvanced
data types.
-
Extensible Design :
- Entity-Based design with clear seperation of concers between
Service
,Repository
, &Controller
Layers
.
- Entity-Based design with clear seperation of concers between
-
Project Lombok :
- Project
Lombok
is aJava Library
that reduces boilerplate code, making code easier to read, maintain, and less error-prone. Lombok
usesAnnotations
to replaceRepetitive
,Tedious
, orBoilerplate
Java code.- For example, you can avoid writing
Constructors
with no arguments,toString()
,equals()
, andhashCode()
methods by adding a fewAnnotations
.
- Project