System Functionality Overview
The pet hospital management system built with Spring Boot supports multiple user roles with configurable permissions. Key features include:
- User management and role assignment
- Permission control system
- Pet profile management
- Medical case tracking
- Health guide management
- Health analytics and charting
- Pet activity logging
- Appointment statistics
- User authentication and registration
Technical Architecture
Backend Framework
Spring Boot with MyBatis persistence layer
Frontend Technologies
HTML, CSS, JavaScript, and jQuery for user interface
Spring Boot Framework
Spring Boot provides convention-over-configuraton setup that eliminates boilerplate code. It integrates seamlessly with popular development frameworks, allowing rapid Spring application development similar to how Maven manages dependencies.
Database System
MySQL serves as the relational database management system, chosen for its compact size, performance efficiency, and open-source nature that aligns well with project requirements.
Development Anvironment
- Java Development Kit: JDK 1.8
- IDE Compatibility: IntelliJ IDEA or Eclipse
- Database: MySQL (versions 5.7 or 8.x)
- Build Tool: Maven
- Operating System: Windows
Configuration Implementation
server.port=8080
debug=true
# Database Configuration
spring.datasource.url=jdbc:mysql://localhost:3306/pet_hospital_db?useSSL=false
spring.datasource.username=db_user
spring.datasource.password=db_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# Connection Pool Settings
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=50
spring.datasource.druid.min-idle=5
# Template Engine Configuration
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.cache=false
# File Upload Limits
spring.servlet.multipart.max-file-size=5MB
spring.servlet.multipart.max-request-size=5MB
Core Controller Implementation
package com.pethospital.controller.user;
import com.pethospital.model.ApiResponse;
import com.pethospital.model.User;
import com.pethospital.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/users")
public class UserManagementController {
private final UserService userService;
private final ApiResponse response;
@Autowired
public UserManagementController(UserService userService,
ApiResponse response) {
this.userService = userService;
this.response = response;
}
@GetMapping("/permissions")
public ApiResponse getUserPermissions() {
return response.success()
.message("User has valid permissions to access this endpoint");
}
@PutMapping("/{userId}")
public String updateUserProfile(@PathVariable Long userId,
@RequestBody User user) {
user.setId(userId);
return userService.updateUserProfile(user);
}
}