Skip to content

"Organize It" is a versatile Todo Manager application built with Java, Spring Boot, In-Memory Data Storage, Spring JDBC, Hibernate, JPA, and MySQL (Database). It features global exception handling, a logging mechanism, and a three-layer architecture for maintainable and understandable code.

Notifications You must be signed in to change notification settings

im-aditya-rathi/OrganizeIt-TodoManager-SpringBoot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Organize It - [Todo Manager]

Overview

OrganizeIt is a Todo Manager application built using Spring Boot.

I have adhered to industrial standard coding practices. This includes implementing a three-layer architecture for separation of concerns & to ensure the code is maintainable and understandable, utilizing global exception handling to ensure consistent error management, and employing a logging mechanism for effective debugging and monitoring. By integrating technologies such as Java, Spring Boot, Hibernate, JPA, and MySQL, I have ensured that the application is robust, maintainable, and scalable, meeting the high standards of professional software development.

The application demonstrates three different methods for data storage:

  1. Hibernate (used as Primary)
  2. Spring JDBC
  3. In-memory using data structures

Features

  • In-Memory Data Storage: Quick and easy setup for testing and development purposes.
  • Spring JDBC: Demonstrates how to interact with a relational database using Spring's JDBC support.
  • Hibernate: Uses Hibernate ORM for database interactions, leveraging JPA annotations.
  • Global Exception Handling: Centralized exception handling using @ControllerAdvice.
  • Logging: Integrated logging using SLF4J.
  • Three-Layer Architecture: Follows a clear separation of concerns with Controller, Service, and Repository layers.

Technologies Used

  • Java: The core programming language utilized for developing the application's business logic and implementing various features.
  • Spring Boot: Simplifies the setup and development of Spring-based applications, providing auto-configuration and embedded servers to accelerate development.
  • In-memory Data Structure: Used for quick, lightweight storage during development and testing, without persistent storage requirements.
  • Spring JDBC: Provides a straightforward approach for interacting with relational databases using SQL, useful for managing database connections and executing queries.
  • Hibernate: An ORM tool that maps Java objects to database tables, offering a higher-level abstraction for database operations and simplifying CRUD operations.
  • JPA (Java Persistence API): Provides a specification for managing relational data in Java applications. Used with Hibernate to define entities and manage persistence operations in a standardized way.
  • MySQL Database: A widely-used relational database management system that stores application data efficiently, supports SQL for querying, and integrates seamlessly with Spring Boot and JPA.

Endpoints Exposed

  • GET /todos : Retrieve all todos
  • GET /todos/{id} : Retrieve a single todo by ID
  • POST /todos : Create a new todo
  • PUT /todos/{id} : Update an existing todo
  • DELETE /todos/{id} : Delete a todo by ID

Screenshots

1.) Success Response:

Create Todo

Get Todo

Create Todo Get Todo

Update Todo

Get All Todos

Update Todo Get All Todos

Delete Todo

Get All Todos (checking again after deleting todo)

Delete Todo Get All Todos (checking again after deleting todo)



2.) Bad Response [Exception Handling]:

Get Todo (with wrong todo id)

Update Todo (with wrong todo id)

Get Todo (with wrong todo id) Update Todo (with wrong todo id)

Delete Todo (with wrong todo id)

Delete Todo (with wrong todo id)

About

"Organize It" is a versatile Todo Manager application built with Java, Spring Boot, In-Memory Data Storage, Spring JDBC, Hibernate, JPA, and MySQL (Database). It features global exception handling, a logging mechanism, and a three-layer architecture for maintainable and understandable code.

Topics

Resources

Stars

Watchers

Forks

Languages