diff --git a/backend/Dockerfile b/backend/Dockerfile index 35fddf2..2688cba 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -4,10 +4,17 @@ WORKDIR /app RUN apt-get update && apt-get install -y \ gcc \ + g++ \ postgresql-client \ libpq-dev \ + libgdal-dev \ + libgeos-dev \ + libproj-dev \ && rm -rf /var/lib/apt/lists/* +ENV CPLUS_INCLUDE_PATH=/usr/include/gdal +ENV C_INCLUDE_PATH=/usr/include/gdal + COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt diff --git a/backend/apps/__init__.py b/backend/apps/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/fields/__init__.py b/backend/apps/fields/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/fields/admin.py b/backend/apps/fields/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/backend/apps/fields/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/apps/fields/apps.py b/backend/apps/fields/apps.py new file mode 100644 index 0000000..8dafa65 --- /dev/null +++ b/backend/apps/fields/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class FieldsConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'apps.fields' diff --git a/backend/apps/fields/migrations/__init__.py b/backend/apps/fields/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/fields/models.py b/backend/apps/fields/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/backend/apps/fields/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/backend/apps/fields/tests.py b/backend/apps/fields/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/backend/apps/fields/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/apps/fields/views.py b/backend/apps/fields/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/backend/apps/fields/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/backend/apps/plans/__init__.py b/backend/apps/plans/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/plans/admin.py b/backend/apps/plans/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/backend/apps/plans/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/apps/plans/apps.py b/backend/apps/plans/apps.py new file mode 100644 index 0000000..37a8344 --- /dev/null +++ b/backend/apps/plans/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class PlansConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'apps.plans' diff --git a/backend/apps/plans/migrations/__init__.py b/backend/apps/plans/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/plans/models.py b/backend/apps/plans/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/backend/apps/plans/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/backend/apps/plans/tests.py b/backend/apps/plans/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/backend/apps/plans/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/apps/plans/views.py b/backend/apps/plans/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/backend/apps/plans/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/backend/apps/reports/__init__.py b/backend/apps/reports/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/reports/admin.py b/backend/apps/reports/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/backend/apps/reports/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/apps/reports/apps.py b/backend/apps/reports/apps.py new file mode 100644 index 0000000..a79748c --- /dev/null +++ b/backend/apps/reports/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ReportsConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'apps.reports' diff --git a/backend/apps/reports/migrations/__init__.py b/backend/apps/reports/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/reports/models.py b/backend/apps/reports/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/backend/apps/reports/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/backend/apps/reports/tests.py b/backend/apps/reports/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/backend/apps/reports/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/apps/reports/views.py b/backend/apps/reports/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/backend/apps/reports/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/backend/keinasystem/settings.py b/backend/keinasystem/settings.py index 806e119..516dcb0 100644 --- a/backend/keinasystem/settings.py +++ b/backend/keinasystem/settings.py @@ -32,9 +32,18 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'django.contrib.gis', + 'rest_framework', + 'rest_framework_simplejwt', + 'djoser', + 'corsheaders', + 'apps.fields', + 'apps.plans', + 'apps.reports', ] MIDDLEWARE = [ + 'corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', @@ -69,7 +78,7 @@ WSGI_APPLICATION = 'keinasystem.wsgi.application' DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.postgresql', + 'ENGINE': 'django.contrib.gis.db.backends.postgis', 'NAME': os.environ.get('DB_NAME', 'keinasystem'), 'USER': os.environ.get('DB_USER', 'keinasystem'), 'PASSWORD': os.environ.get('DB_PASSWORD', ''), @@ -119,3 +128,27 @@ STATIC_URL = 'static/' # https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +REST_FRAMEWORK = { + 'DEFAULT_AUTHENTICATION_CLASSES': ( + 'rest_framework_simplejwt.authentication.JWTAuthentication', + ), + 'DEFAULT_PERMISSION_CLASSES': ( + 'rest_framework.permissions.IsAuthenticated', + ), +} + +from datetime import timedelta +SIMPLE_JWT = { + 'ACCESS_TOKEN_LIFETIME': timedelta(hours=24), + 'REFRESH_TOKEN_LIFETIME': timedelta(days=7), +} + +CORS_ALLOWED_ORIGINS = [ + "http://localhost:3000", + "http://127.0.0.1:3000", +] + +LANGUAGE_CODE = 'ja' + +TIME_ZONE = 'Asia/Tokyo' diff --git a/backend/requirements.txt b/backend/requirements.txt index 1e78787..318da66 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,3 +1,11 @@ -Django>=5.0,<6.0 -psycopg2-binary>=2.9,<3.0 +Django==5.0 +djangorestframework==3.14 +django-cors-headers==4.3 +psycopg2-binary>=2.9 +djoser==2.2 +djangorestframework-simplejwt==5.3 +pandas>=2.1,<3.0 +odfpy==1.4 +WeasyPrint==60.1 gunicorn>=21.0,<22.0 +setuptools<75