Skip to content

This repository contains the configuration and source code for a Spring Boot application that manages a ToDo list, with settings for encryption, database connectivity, Spring Boot Admin integration, and more.

License

Notifications You must be signed in to change notification settings

nevinmathew/ToDo-List

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 

Repository files navigation

ToDo-List

Overview

The ToDo List is a Java-based Spring Boot application that provides functionality for managing ToDo tasks. It allows users to create, retrieve, update, and delete tasks, and also includes features such as task prioritization and categorization.

Table of Contents

Languages and Tools

Spring Boot MySql AWS

Features

  • Task Management: Create, update, retrieve, and delete tasks with ease.
  • Category Support: Organize tasks by assigning them to categories.
  • Validation: Input validation ensures data integrity and security.
  • Asynchronous Processing: Utilizes asynchronous processing for improved responsiveness and performance.
  • Caching: Implements caching to optimize task retrieval.
  • Swagger Documentation: Includes OpenAPI (Swagger) documentation for API exploration.
  • Spring Boot Admin Integration: Integrates with Spring Boot Admin for monitoring and management.
  • Jasypt Encryption: Supports data encryption for sensitive information.
  • Custom ExecutorService: Configures a custom ThreadPoolTaskExecutor for asynchronous task execution.
  • Global Exception Handling: Provides global exception handling.

Usage

Access the application through your web browser or API client at http://localhost:8080.

Use the API endpoints to create, retrieve, update, and delete ToDo tasks.

Configuration

The application uses Spring Boot and Spring Caching for performance optimization.

Asynchronous Processing

Asynchronous processing is employed in this application to enhance responsiveness and performance. Key components related to asynchronous processing include:

A custom ThreadPoolTaskExecutor bean for executing tasks asynchronously. CompletableFuture and the @Async annotation to perform tasks asynchronously. Offloading time-consuming operations to separate threads for improved user experience.

The custom ThreadPoolTaskExecutor is defined in ExecutorServiceConfig. You can adjust its core pool size, maximum pool size, queue capacity, and thread name prefix according to your requirements.

Encryption

If you require encryption for sensitive data, you can set up Jasypt encryption by modifying EncryptionConfiguration. The application supports both property-based and environment variable-based encryption configuration.

OpenAPI (Swagger) Documentation

This application provides OpenAPI (Swagger) documentation for easy API exploration. You can access the API documentation at http://localhost:9090/actuator/swagger-ui/index.html.

Spring Boot Admin

This application is configured to interact with Spring Boot Admin. You can access the Spring Boot Admin dashboard at http://localhost:8080/applications to monitor the application's health and status.

License

This project is licensed under the Mozilla Public License (MPL) - see the LICENSE file for details.

About

This repository contains the configuration and source code for a Spring Boot application that manages a ToDo list, with settings for encryption, database connectivity, Spring Boot Admin integration, and more.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages