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:
- Hibernate (used as Primary)
- Spring JDBC
- In-memory using data structures
- 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.
- 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.
GET /todos
: Retrieve all todosGET /todos/{id}
: Retrieve a single todo by IDPOST /todos
: Create a new todoPUT /todos/{id}
: Update an existing todoDELETE /todos/{id}
: Delete a todo by ID
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |