|
| 1 | +# Veteriner Yönetim Sistemi |
| 2 | + |
| 3 | +[English](#english) | [Türkçe](#turkish) |
| 4 | + |
| 5 | +Veterinary Management System is a RESTful API that helps manage the operations of a veterinary clinic. This API provides endpoints to manage various resources, including veterinary doctors, customers, animals, vaccines, and appointments. |
| 6 | +## <a name="english"></a>English |
| 7 | + |
| 8 | +### Technologies |
| 9 | + |
| 10 | +- Java 11 |
| 11 | +- Spring Boot |
| 12 | +- Spring Data JPA |
| 13 | +- Hibernate |
| 14 | +- PostgreSQL |
| 15 | +- Maven |
| 16 | + |
| 17 | +### Main Features |
| 18 | + |
| 19 | +- Managing veterinarians: saving, updating, viewing, and deleting |
| 20 | +- Managing the available days of doctors: saving, updating, viewing, and deleting |
| 21 | +- Managing customers: saving, updating, viewing, and deleting |
| 22 | +- Managing animals belonging to customers: saving, updating, viewing, and deleting |
| 23 | +- Managing vaccines applied to animals: saving, updating, viewing, and deleting |
| 24 | +- Creating appointments for animals to veterinarians: saving, updating, viewing, and deleting |
| 25 | + |
| 26 | +### API Endpoints |
| 27 | + |
| 28 | +#### Managing Veterinarians |
| 29 | + |
| 30 | +- `POST /v1/doctors`: Creates a new doctor. |
| 31 | +- `GET /v1/doctors/{id}`: Retrieves a doctor with a specific ID. |
| 32 | +- `PUT /v1/doctors`: Updates a doctor. |
| 33 | +- `DELETE /v1/doctors/{id}`: Deletes a doctor with a specific ID. |
| 34 | + |
| 35 | +#### Managing the Available Days of Doctors |
| 36 | + |
| 37 | +- `POST /v1/available-dates`: Creates a new available date. |
| 38 | +- `GET /v1/available-dates/{id}`: Retrieves an available date with a specific ID. |
| 39 | +- `PUT /v1/available-dates`: Updates an available date. |
| 40 | +- `DELETE /v1/available-dates/{id}`: Deletes an available date with a specific ID. |
| 41 | + |
| 42 | +#### Managing Customers |
| 43 | + |
| 44 | +- `POST /v1/customers`: Creates a new customer. |
| 45 | +- `GET /v1/customers/{id}`: Retrieves a customer with a specific ID. |
| 46 | +- `PUT /v1/customers`: Updates a customer. |
| 47 | +- `DELETE /v1/customers/{id}`: Deletes a customer with a specific ID. |
| 48 | + |
| 49 | +#### Managing Animals Belonging to Customers |
| 50 | + |
| 51 | +- `POST /v1/animals`: Creates a new animal. |
| 52 | +- `GET /v1/animals/{id}`: Retrieves an animal with a specific ID. |
| 53 | +- `PUT /v1/animals`: Updates an animal. |
| 54 | +- `DELETE /v1/animals/{id}`: Deletes an animal with a specific ID. |
| 55 | + |
| 56 | +#### Managing Vaccines Applied to Animals |
| 57 | + |
| 58 | +- `POST /v1/vaccines`: Creates a new vaccine. |
| 59 | +- `GET /v1/vaccines/{id}`: Retrieves a vaccine with a specific ID. |
| 60 | +- `PUT /v1/vaccines`: Updates a vaccine. |
| 61 | +- `DELETE /v1/vaccines/{id}`: Deletes a vaccine with a specific ID. |
| 62 | + |
| 63 | +#### Creating Appointments for Animals to Veterinarians |
| 64 | + |
| 65 | +- `POST /v1/appointments/create`: Creates a new appointment. |
| 66 | +- `GET /v1/appointments/{id}`: Retrieves an appointment with a specific ID. |
| 67 | +- `PUT /v1/appointments`: Updates an appointment. |
| 68 | +- `DELETE /v1/appointments/{id}`: Deletes an appointment with a specific ID. |
| 69 | +- `GET /v1/appointments/doctor/{doctorId}`: Retrieves appointments for a specific doctor within a specific date range. |
| 70 | +- `GET /v1/appointments/animal/{animalId}`: Retrieves appointments for a specific animal within a specific date range. |
| 71 | + |
| 72 | +### Database Structure |
| 73 | + |
| 74 | +The database consists of six main entities: `Doctor`, `AvailableDate`, `Customer`, `Animal`, `Vaccine`, and `Appointment`. |
| 75 | + |
| 76 | +- `Doctor`: Represents the veterinarians in the clinic. Each doctor has a list of `AvailableDate` and `Appointment`. |
| 77 | +- `AvailableDate`: Represents the available dates of a doctor. Each available date is associated with a `Doctor`. |
| 78 | +- `Customer`: Represents the customers of the clinic. Each customer has a list of `Animal`. |
| 79 | +- `Animal`: Represents the animals owned by customers. Each animal is associated with a `Customer` and has a list of `Vaccine` and `Appointment`. |
| 80 | +- `Vaccine`: Represents the vaccines applied to animals. Each vaccine is associated with an `Animal`. |
| 81 | +- `Appointment`: Represents the appointments for animals to see a doctor. Each appointment is associated with a `Doctor` and an `Animal`. |
| 82 | + |
| 83 | +### Installation |
| 84 | + |
| 85 | +1. Clone the project to your local machine. |
| 86 | +2. Edit the `application.properties` file according to your database settings. |
| 87 | +3. Compile and run the project with Maven. |
| 88 | + |
| 89 | +### Contributing |
| 90 | + |
| 91 | +This project is open source and contributions are welcome. To contribute, please follow the steps below: |
| 92 | + |
| 93 | +1. Fork the project |
| 94 | +2. Create a Feature Branch in your own Fork (`git checkout -b feature/AmazingFeature`) |
| 95 | +3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) |
| 96 | +4. Push the Branch (`git push origin feature/AmazingFeature`) |
| 97 | +5. Create a Pull Request |
| 98 | + |
| 99 | +### License |
| 100 | + |
| 101 | +This project is licensed under the MIT license. For more information, see the `LICENSE` file. |
0 commit comments