Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added server/accounts/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions server/accounts/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

Check failure on line 1 in server/accounts/admin.py

View workflow job for this annotation

GitHub Actions / Run Flake8

'django.contrib.admin' imported but unused

# Register your models here.
6 changes: 6 additions & 0 deletions server/accounts/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class AccountsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'accounts'
42 changes: 42 additions & 0 deletions server/accounts/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Generated by Django 5.2.8 on 2025-12-07 15:20

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

initial = True

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.CreateModel(
name='Organisation',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('host', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
name='Users',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('rating', models.SmallIntegerField(blank=True, null=True)),
('created_at', models.DateTimeField(auto_now_add=True)),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='account', to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
name='Members',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.organisation')),
('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.users')),
],
),
]
Empty file.
36 changes: 36 additions & 0 deletions server/accounts/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from django.db import models
from django.contrib.auth import get_user_model

Check warning on line 2 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace


# Create your models here.


User = get_user_model()

Check warning on line 8 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace


class Users(models.Model):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
related_name="account",
)
rating = models.SmallIntegerField(null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)

Check warning on line 18 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace



class Organisation(models.Model):

Check warning on line 22 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace

Check failure on line 22 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

too many blank lines (3)
host = models.ForeignKey(User, on_delete=models.CASCADE)

Check warning on line 23 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace
created_at = models.DateTimeField(auto_now_add=True)

Check warning on line 24 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace



class Members(models.Model):

Check warning on line 28 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace

Check failure on line 28 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

too many blank lines (3)
owner = models.ForeignKey(Organisation, on_delete=models.CASCADE)
member = models.ForeignKey(Users, on_delete=models.CASCADE)

Check warning on line 30 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace






Check warning on line 36 in server/accounts/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

blank line at end of file
3 changes: 3 additions & 0 deletions server/accounts/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

Check failure on line 1 in server/accounts/tests.py

View workflow job for this annotation

GitHub Actions / Run Flake8

'django.test.TestCase' imported but unused

# Create your tests here.
3 changes: 3 additions & 0 deletions server/accounts/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.shortcuts import render

Check failure on line 1 in server/accounts/views.py

View workflow job for this annotation

GitHub Actions / Run Flake8

'django.shortcuts.render' imported but unused

# Create your views here.
Empty file added server/bookings/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions server/bookings/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

Check failure on line 1 in server/bookings/admin.py

View workflow job for this annotation

GitHub Actions / Run Flake8

'django.contrib.admin' imported but unused

# Register your models here.
6 changes: 6 additions & 0 deletions server/bookings/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class BookingsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'bookings'
38 changes: 38 additions & 0 deletions server/bookings/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Generated by Django 5.2.8 on 2025-12-07 15:21

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

initial = True

dependencies = [
('accounts', '0001_initial'),
]

operations = [
migrations.CreateModel(
name='Inventory',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=255)),
('description', models.TextField()),
('quantity', models.SmallIntegerField()),
('avaliable', models.BooleanField(default=True)),
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.organisation')),
],
),
migrations.CreateModel(
name='Loan',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('loan_start', models.DateTimeField(auto_now_add=True)),
('loan_end', models.DateTimeField()),
('host', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.organisation')),
('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bookings.inventory')),
('requester', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.users')),
],
),
]
Empty file.
26 changes: 26 additions & 0 deletions server/bookings/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from django.db import models
from accounts.models import Users, Organisation
# Create your models here.




class Inventory(models.Model):

Check warning on line 8 in server/bookings/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

trailing whitespace

Check failure on line 8 in server/bookings/models.py

View workflow job for this annotation

GitHub Actions / Run Flake8

too many blank lines (4)
owner = models.ForeignKey(Organisation, on_delete=models.CASCADE)
title = models.CharField(max_length=255)
description = models.TextField()
quantity = models.SmallIntegerField(null=False)
avaliable = models.BooleanField(default=True)


class Loan(models.Model):
host = models.ForeignKey(Organisation, on_delete=models.CASCADE)
requester = models.ForeignKey(Users, on_delete=models.CASCADE)
item = models.ForeignKey(Inventory, on_delete=models.CASCADE)
loan_start = models.DateTimeField(auto_now_add=True)
loan_end = models.DateTimeField(null=False, blank=False)





3 changes: 3 additions & 0 deletions server/bookings/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

Check failure on line 1 in server/bookings/tests.py

View workflow job for this annotation

GitHub Actions / Run Flake8

'django.test.TestCase' imported but unused

# Create your tests here.
3 changes: 3 additions & 0 deletions server/bookings/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.shortcuts import render

Check failure on line 1 in server/bookings/views.py

View workflow job for this annotation

GitHub Actions / Run Flake8

'django.shortcuts.render' imported but unused

# Create your views here.
Empty file added server/hosts/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions server/hosts/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

Check failure on line 1 in server/hosts/admin.py

View workflow job for this annotation

GitHub Actions / Run Flake8

'django.contrib.admin' imported but unused

# Register your models here.
6 changes: 6 additions & 0 deletions server/hosts/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class HostsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'hosts'
Empty file.
3 changes: 3 additions & 0 deletions server/hosts/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.db import models

# Create your models here.
3 changes: 3 additions & 0 deletions server/hosts/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
10 changes: 10 additions & 0 deletions server/hosts/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from django.urls import path
from . import views


app_name = "hosts"

urlpatterns = [
path("", views.HostHomePage.as_view(), name="hosts-homepage"),
path("Createclub", views.HostCreateClub.as_view(), name="hosts-createclub")
]
19 changes: 19 additions & 0 deletions server/hosts/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response


class HostHomePage(APIView):
def get(self, request):
return Response({"endpoint": "Hosts HomePage", "status": "working"})



class HostCreateClub(APIView):
def get(self, request):
return Response({"endpoint": "Hosts CreateClub", "status": "working"})




# Create your views here.
Empty file added server/requesters/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions server/requesters/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

# Register your models here.
8 changes: 8 additions & 0 deletions server/requesters/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.apps import AppConfig


class RequestersConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'requesters'


Empty file.
11 changes: 11 additions & 0 deletions server/requesters/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from django.db import models









# Create your models here.
3 changes: 3 additions & 0 deletions server/requesters/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
11 changes: 11 additions & 0 deletions server/requesters/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from django.urls import path
from . import views


app_name = "requesters"

urlpatterns = [
path("", views.RequesterHomePage.as_view(), name="requesters-homepage"),
path("Myitems", views.RequesterItemPage.as_view(), name="requesters-itempage")

]
18 changes: 18 additions & 0 deletions server/requesters/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from django.shortcuts import render
from rest_framework import generics
from rest_framework.views import APIView
from rest_framework.response import Response


class RequesterHomePage(APIView):
def get(self, request):
return Response({"endpoint": "Requesters HomePage", "status": "working"})


class RequesterItemPage(APIView):
def get(self, request):
return Response({"endpoint": "Requesters ItemPage", "status": "working"})



# Create your views here.
6 changes: 5 additions & 1 deletion server/server/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,11 @@
"rest_framework",
"corsheaders",
"healthcheck",
"user_profile"
"user_profile",
"accounts",
"bookings",
"hosts",
"requesters"
]

MIDDLEWARE = [
Expand Down
5 changes: 4 additions & 1 deletion server/server/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,8 @@
path("api/token/", TokenObtainPairView.as_view(), name="token_obtain_pair"),
path("api/token/refresh/", TokenRefreshView.as_view(), name="token_refresh"),
path("api/healthcheck/", include("healthcheck.urls")),
path("api/user/", include("user_profile.urls"))
path("api/user/", include("user_profile.urls")),
path("api/requesters/", include("requesters.urls")),
path("api/hosts/", include("hosts.urls")),

]
4 changes: 3 additions & 1 deletion server/user_profile/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
User = get_user_model()

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
user = models.OneToOneField(User,
on_delete=models.CASCADE,
related_name='profile')
bio = models.TextField(blank=True)
age = models.PositiveIntegerField(null=True, blank=True)

Expand Down
2 changes: 1 addition & 1 deletion server/user_profile/views.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.shortcuts import render
from rest_framework import generics, permissions
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.views import APIView

from .models import User, Profile
from .serializers import ProfileSerializer, UserSerializer
Expand Down