{"repo":"pmoustopoulos/department-api","free":true,"listed":false,"github":"https://github.com/pmoustopoulos/department-api","clone":"git clone https://github.com/pmoustopoulos/department-api.git","description":"A Spring Boot 3 RESTful API for managing departments and employees. Features include CRUD operations, Excel/PDF reporting with JasperReport, async email sending with Thymeleaf, Dockerized PostgreSQL, and database migrations with Flyway. Enhanced with Swagger documentation, and tested using JUnit 5, Mockito, and Testcontainers.","language":"Java","stars":33,"topics":["api-documentation","crud","docker","excel-reports","integration-testing","java","java17","jpa","mockito","pdf-reports"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"Department API - Spring Boot 3 A RESTful API created using Spring Boot 3, PostgreSQL, and JasperReport. The API allows for CRUD operations on departments and employees and includes functionality for generating Excel and PDF reports using JasperReport. Additionally, the API can send asynchronous emails using Thymeleaf to create the email body, including the ability to send attachments. MailHog is integrated as a local SMTP server for testing email functionality. Swagger is also integrated for easy API documentation and testing. Database migrations across different environments are managed seamlessly with Flyway. Note : The API also includes IP-based rate limiting using Bucket4j to manage excessive requests from individual clients. Table of Contents - Run with an In-Memory H2 Database - Prerequisites - Start the Application - Start App as a Docker container - Swagger - MailHog - Rate Limiting with Bucket4j - Testing - Unit Testing - Integration Testing with Testcontainers - SonarQube Run with an In-Memory H2 Database If you want to run the application with an in-memory H2 database , use the h2-database branch. This branch includes the necessary configuration files and dependencies to set up and use H2 as the database for the application. The migrations specific to H2 can be found under db/migration/h2 . To get started, simply switch to the h2-database branch and run the application. Note that all data and related information will be persisted to a file on the local file system.","default_branch":null,"files":null,"tree":[],"storefront":"/r/pmoustopoulos","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/pmoustopoulos/department-api/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}