Veteriner Yönetim Sistemi, bir veteriner kliniğinin işlerini yönetmesine yardımcı olan bir RESTful API'dir. Bu API, veteriner doktorları, müşteriler, hayvanlar, aşılar ve randevular dahil olmak üzere çeşitli kaynakları yönetmek için endpoint'ler sağlar.
- Veteriner doktorları kaydetme, güncelleme, görüntüleme ve silme
- Doktorların müsait günlerini kaydetme, güncelleme, görüntüleme ve silme
- Müşterileri kaydetme, güncelleme, görüntüleme ve silme
- Müşterilere ait hayvanları kaydetme, güncelleme, görüntüleme ve silme
- Hayvanlara uygulanan aşıları kaydetme, güncelleme, görüntüleme ve silme
- Hayvanlar için veteriner hekimlere randevu oluşturma, güncelleme, görüntüleme ve silme
Entity Relationship Diagram
Postman Koleksiyonu https://www.postman.com/bpolatt/workspace/vet-clinic-rest-api/overview
Database Yapısı ve İçindeki Örnek Veriler
POST http://localhost:8080/v1/doctors
: Yeni bir doktor oluşturur.GET http://localhost:8080/v1/doctors/1
: Belirli bir ID'ye sahip doktoru alır.GET http://localhost:8080/v1/doctors?page=0&size=3
: Sayfalama ve sıralama yaparak doktorları alır.PUT http://localhost:8080/v1/doctors
: Bir doktoru günceller.DELETE http://localhost:8080/v1/doctors/1
: Belirli bir ID'ye sahip doktoru siler.
POST http://localhost:8080/v1/available-dates
: Yeni bir müsait tarih oluşturur.GET http://localhost:8080/v1/available-dates/1
: Belirli bir ID'ye sahip müsait tarihi alır.GET http://localhost:8080/v1/available-dates?page=0&size=3
: Sayfalama ve sıralama yaparak müsait tarihleri alır.PUT http://localhost:8080/v1/available-dates
: Bir müsait tarihi günceller.DELETE http://localhost:8080/v1/available-dates/1
: Belirli bir ID'ye sahip müsait tarihi siler.
POST http://localhost:8080/v1/customers
: Yeni bir müşteri oluşturur.GET http://localhost:8080/v1/customers/1
: Belirli bir ID'ye sahip müşteriyi alır.GET http://localhost:8080/v1/customers?page=0&size=3
: Sayfalama ve sıralama yaparak müşterileri alır.GET http://localhost:8080/v1/customers/1/animals
: Belirli bir ID'ye sahip müşterinin hayvanlarını alır.GET http://localhost:8080/v1/customers/filterByName?name=ahmet
: Müşterileri isimlerine göre filtreler.PUT http://localhost:8080/v1/customers
: Bir müşteriyi günceller.DELETE http://localhost:8080/v1/customers/1
: Belirli bir ID'ye sahip müşteriyi siler.
POST http://localhost:8080/v1/animals
: Yeni bir hayvan oluşturur.GET http://localhost:8080/v1/animals/1
: Belirli bir ID'ye sahip hayvanı alır.GET http://localhost:8080/v1/animals?page=0&size=3
: Sayfalama ve sıralama yaparak hayvanları alır.GET http://localhost:8080/v1/animals/1/customer
: Belirli bir ID'ye sahip hayvanın sahibini alır.GET http://localhost:8080/v1/animals/filter?name=Peluş
: Hayvanları isimlerine göre filtreler.GET http://localhost:8080/v1/animals/vaccines?startDate=2022-01-01&endDate=2024-12-31
: Tarih aralığına göre hayvanlara uygulanan aşıları alır.PUT http://localhost:8080/v1/animals/1
: Belirli bir ID'ye sahip hayvanı günceller.DELETE http://localhost:8080/v1/animals/1
: Belirli bir ID'ye sahip hayvanı siler.
POST http://localhost:8080/v1/vaccines
: Yeni bir aşı oluşturur.GET http://localhost:8080/v1/vaccines/1
: Belirli bir ID'ye sahip aşıyı alır.GET http://localhost:8080/v1/vaccines?page=0&size=3
: Sayfalama ve sıralama yaparak aşıları alır.GET http://localhost:8080/v1/vaccines/animal/1
: Belirli bir ID'ye sahip hayvana uygulanan aşıları alır.GET http://localhost:8080/v1/vaccines/protection-dates?start_date=2023-12-31&end_date=2024-12-31
: Girilen tarih aralığına göre aşı koruma tarihlerini alır.PUT http://localhost:8080/v1/vaccines
: Bir aşıyı günceller.DELETE http://localhost:8080/v1/vaccines/1
: Belirli bir ID'ye sahip aşıyı siler.PUT http://localhost:8080/v1/vaccines/vaccinate
: Bir hayvana aşı uygular.
POST http://localhost:8080/v1/appointments/create
: Bir hayvana randevu oluşturur.GET http://localhost:8080/v1/appointments/1
: Belirli bir ID'ye sahip randevuyu alır.GET http://localhost:8080/v1/appointments?page=0&size=3
: Sayfalama ve sıralama yaparak randevuları alır.GET http://localhost:8080/v1/appointments/doctor/1?start_date_time=2023-01-01T10:00:00&end_date_time=2023-05-01T11:00:00
: Belirli bir ID'ye sahip doktorun belirli bir tarih aralığındaki randevularını alır.GET http://localhost:8080/v1/appointments/animal/2?start_date_time=2023-01-01T10:00:00&end_date_time=2023-02-01T11:00:00
: Belirli bir ID'ye sahip hayvanın belirli bir tarih aralığındaki randevularını alır.PUT http://localhost:8080/v1/appointments
: Bir randevuyu günceller.DELETE http://localhost:8080/v1/appointments/1
: Belirli bir ID'ye sahip randevuyu siler.
Veritabanı altı ana varlık içerir: Doktor
, UygunTarih
, Müşteri
, Hayvan
, Aşı
, ve Randevu
.
Doktor
: Klinikteki veterinerleri temsil eder. Her doktorun birUygunTarih
veRandevu
listesi bulunur.UygunTarih
: Bir doktorun uygun tarihlerini temsil eder. Her uygun tarih birDoktor
ile ilişkilidir.Müşteri
: Kliniğin müşterilerini temsil eder. Her müşterinin birHayvan
listesi bulunur.Hayvan
: Müşterilere ait hayvanları temsil eder. Her hayvan birMüşteri
ile ilişkilidir ve birAşı
veRandevu
listesine sahiptir.Aşı
: Hayvanlara uygulanan aşıları temsil eder. Her aşı birHayvan
ile ilişkilidir.Randevu
: Hayvanların bir doktora görünmesi için yapılan randevuları temsil eder. Her randevu birDoktor
ve birHayvan
ile ilişkilidir.
- Bu projeyi klonlayın.
- Proje içindeki
vetclinic.sql
dosyasını kullanarak postgresql veritabanını oluşturun. src/main/resources/application.properties
dosyasını açın ve veritabanı bağlantı bilgilerini güncelleyin.- https://www.postman.com/bpolatt/workspace/vet-clinic-rest-api/overview adresinden Postman koleksiyonunu indirin.
- Postman koleksiyonunu Postman'e import edin.
- Postman koleksiyonundaki istekleri kullanarak API'yi test edin.
Bu proje açık kaynaklıdır ve katkılarınıza açıktır. Katkıda bulunmak için lütfen aşağıdaki adımları izleyin:
- Projeyi Forklayın
- Kendi Fork'unuzda bir Feature Branch oluşturun (
git checkout -b feature/AmazingFeature
) - Değişikliklerinizi Commit edin (
git commit -m 'Add some AmazingFeature'
) - Branch'ı Push edin (
git push origin feature/AmazingFeature
) - Pull Request oluşturun
Bu proje MIT lisansı ile lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına bakın.