diff --git a/server/dog/__init__.py b/server/dog/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/server/dog/admin.py b/server/dog/admin.py new file mode 100644 index 0000000..549e43d --- /dev/null +++ b/server/dog/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin + +from dog.models import DogPark +from dog.models import SavedDogPark +# Register your models here. +admin.site.register(DogPark) +admin.site.register(SavedDogPark) \ No newline at end of file diff --git a/server/dog/apps.py b/server/dog/apps.py new file mode 100644 index 0000000..c84d3e4 --- /dev/null +++ b/server/dog/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class DogConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'dog' diff --git a/server/dog/migrations/0001_initial.py b/server/dog/migrations/0001_initial.py new file mode 100644 index 0000000..2b4f835 --- /dev/null +++ b/server/dog/migrations/0001_initial.py @@ -0,0 +1,36 @@ +# Generated by Django 5.2.8 on 2025-12-06 06:33 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='DogPark', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('parkName', models.CharField(max_length=100)), + ('streetNo', models.CharField(max_length=10)), + ('streetName', models.CharField(max_length=100)), + ('suburb', models.CharField(max_length=100)), + ('state', models.CharField(max_length=50)), + ('postcode', models.CharField(max_length=10)), + ('country', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='SavedDogPark', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('userName', models.CharField(max_length=100)), + ('parkId', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='dog.dogpark')), + ], + ), + ] diff --git a/server/dog/migrations/__init__.py b/server/dog/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/server/dog/models.py b/server/dog/models.py new file mode 100644 index 0000000..dc75fc7 --- /dev/null +++ b/server/dog/models.py @@ -0,0 +1,15 @@ +from django.db import models + +# Create your models here. +class DogPark(models.Model): + parkName = models.CharField(max_length=100) + streetNo = models.CharField(max_length=10) + streetName = models.CharField(max_length=100) + suburb = models.CharField(max_length=100) + state = models.CharField(max_length=50) + postcode = models.CharField(max_length=10) + country = models.CharField(max_length=100) + +class SavedDogPark(models.Model): + userName = models.CharField(max_length=100) + parkId = models.ForeignKey(DogPark, on_delete=models.CASCADE) diff --git a/server/dog/tests.py b/server/dog/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/server/dog/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/server/dog/urls.py b/server/dog/urls.py new file mode 100644 index 0000000..a9ca914 --- /dev/null +++ b/server/dog/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path("", views.dog_home, name="dog-home"), +] \ No newline at end of file diff --git a/server/dog/views.py b/server/dog/views.py new file mode 100644 index 0000000..e56405d --- /dev/null +++ b/server/dog/views.py @@ -0,0 +1,5 @@ +from django.shortcuts import render + +# Create your views here. +def dog_home(request): + return render(request, 'dog/dog_home.html') \ No newline at end of file diff --git a/server/server/settings.py b/server/server/settings.py index e797347..8474ca2 100644 --- a/server/server/settings.py +++ b/server/server/settings.py @@ -51,6 +51,8 @@ "user_profile", "pet.apps.PetConfig", "tasks.apps.TasksConfig", + "dog.apps.DogConfig", + "vet.apps.VetConfig", "landing_page", ] diff --git a/server/server/urls.py b/server/server/urls.py index 6a0358e..b1d0acf 100644 --- a/server/server/urls.py +++ b/server/server/urls.py @@ -29,4 +29,6 @@ path("pet/", include("pet.urls")), path("tasks/", include("tasks.urls")), path("home/", include("landing_page.urls")), + path("dog/", include("dog.urls")), + path("vet/", include("vet.urls")), ] diff --git a/server/vet/__init__.py b/server/vet/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/server/vet/admin.py b/server/vet/admin.py new file mode 100644 index 0000000..a69451e --- /dev/null +++ b/server/vet/admin.py @@ -0,0 +1,8 @@ +from django.contrib import admin + +from vet.models import VetAppointment +from vet.models import VetClinic + +# Register your models here. +admin.site.register(VetClinic) +admin.site.register(VetAppointment) \ No newline at end of file diff --git a/server/vet/apps.py b/server/vet/apps.py new file mode 100644 index 0000000..3693e7e --- /dev/null +++ b/server/vet/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class VetConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'vet' diff --git a/server/vet/migrations/0001_initial.py b/server/vet/migrations/0001_initial.py new file mode 100644 index 0000000..f9c7e58 --- /dev/null +++ b/server/vet/migrations/0001_initial.py @@ -0,0 +1,33 @@ +# Generated by Django 5.2.8 on 2025-12-06 06:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='VetAppointment', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('forPet', models.CharField(max_length=100)), + ('dateAndTime', models.DateTimeField()), + ('atClinic', models.BooleanField(default=True)), + ], + ), + migrations.CreateModel( + name='VetClinic', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('clinicName', models.CharField(max_length=100)), + ('phoneNumber', models.CharField(max_length=15)), + ('email', models.EmailField(max_length=254)), + ('address', models.CharField(max_length=255)), + ], + ), + ] diff --git a/server/vet/migrations/__init__.py b/server/vet/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/server/vet/models.py b/server/vet/models.py new file mode 100644 index 0000000..f335de0 --- /dev/null +++ b/server/vet/models.py @@ -0,0 +1,19 @@ +from django.db import models + +# Create your models here. +class VetClinic(models.Model): + clinicName = models.CharField(max_length=100) + phoneNumber = models.CharField(max_length=15) + email = models.EmailField() + address = models.CharField(max_length=255) + + def __str__(self): + return self.clinicName + +class VetAppointment(models.Model): + forPet = models.CharField(max_length=100) + dateAndTime = models.DateTimeField() + atClinic = models.BooleanField(default=True) + + def __str__(self): + return f"{self.petName} - {self.appointmentDate.strftime('%Y-%m-%d %H:%M')}" \ No newline at end of file diff --git a/server/vet/tests.py b/server/vet/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/server/vet/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/server/vet/urls.py b/server/vet/urls.py new file mode 100644 index 0000000..0458c45 --- /dev/null +++ b/server/vet/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + +app_name = "vet" +urlpatterns = [ + path("", views.vet_home, name="vet-home"), +] diff --git a/server/vet/views.py b/server/vet/views.py new file mode 100644 index 0000000..d32893a --- /dev/null +++ b/server/vet/views.py @@ -0,0 +1,5 @@ +from django.shortcuts import render + +# Create your views here. +def vet_home(request): + return render(request, 'vet/vet_home.html') \ No newline at end of file