This project is a Veterinary Management API designed to manage various aspects of a veterinary practice, including appointments, doctors, customers, and animal records. The project is implemented in Java and follows a RESTful architecture.
The project is organized into several packages, each serving a different purpose. Here is an overview of the key packages and their functionalities:
-
Core Configuration
- Security: Contains security configurations.
- Web Config: Configurations for the web layer.
- Model Mapper: Configurations for model mapping.
-
Exceptions
- Defines custom exceptions for various error scenarios such as:
- AppointmentAlreadyExists
- NotFoundAnimalException
- And others.
- Defines custom exceptions for various error scenarios such as:
-
Controllers
- Handles incoming HTTP requests and maps them to appropriate service methods. Key controllers include:
- CustomerController
- DoctorController
- AppointmentController
- And others.
- Handles incoming HTTP requests and maps them to appropriate service methods. Key controllers include:
-
Services
- Contains business logic and service methods. Key services include:
- CustomerService
- DoctorService
- AppointmentService
- And others.
- Contains business logic and service methods. Key services include:
-
Models
- Defines the data models for the application. Key models include:
- Customer
- Doctor
- Appointment
- And others.
- Defines the data models for the application. Key models include:
-
Repositories
- Interfaces for CRUD operations on data models. Key repositories include:
- CustomerRepository
- DoctorRepository
- AppointmentRepository
- And others.
- Interfaces for CRUD operations on data models. Key repositories include:
-
Configurations
- Contains configuration classes for various aspects of the application. Key configurations include:
- SecurityConfig
- WebConfigurer
- ModelMapperConfig
- And others.
- Contains configuration classes for various aspects of the application. Key configurations include:
- Clone the repository.
- Navigate to the project directory.
- Build the project using Maven:
mvn clean install
- Run the application:
mvn spring-boot:run
- Spring Boot
- Spring Security
- Spring MVC
- Spring Data JPA
- Validation
- Lombok
- ModelMapper
- Hibernate
- JPA
Here is a list of key endpoints provided by the API:
-
Customer
GET /customers
: Get all customers.POST /customers
: Create a new customer.GET /customers/{id}
: Get customer by ID.
-
Doctor
GET /doctors
: Get all doctors.POST /doctors
: Create a new doctor.GET /doctors/{id}
: Get doctor by ID.
-
Appointments
GET /appointments
: Get all appointments.POST /appointments
: Create a new appointment.GET /appointments/{id}
: Get appointment by ID.
-
Animals
GET /animals
: Get all animals.POST /animals
: Create a new animal record.GET /animals/{id}
: Get animal by ID.
The application uses a global exception handler to manage errors and provide meaningful responses to the client.
In this project, MVC (Model-View-Controller) architecture is used. The interface components are located under a "resources" folder, which contains HTML, CSS, and JavaScript files. According to the MVC architecture:
- Model: Data models and business logic reside here.
- View: User interface components are found here. These components include HTML files and associated CSS and JavaScript files.
- Controller: Controllers are used to handle incoming requests and manage interaction between the model and view.
To access the interface components of the project, you can follow these steps:
- Navigate to the "resources" folder in the project directory.
- Inside this folder, you will find model, view, and controller components according to the MVC structure.
- You can start using the interface by opening the relevant HTML, CSS, and JavaScript files in a web browser.
If you have any questions or feedback regarding the interface of the project, please feel free to contact us.
DEMO IMAGES:
This project is licensed under the MIT License.