diff --git a/api/__pycache__/admin.cpython-311.pyc b/api/__pycache__/admin.cpython-311.pyc index 8f3745e..f395797 100644 Binary files a/api/__pycache__/admin.cpython-311.pyc and b/api/__pycache__/admin.cpython-311.pyc differ diff --git a/api/__pycache__/models.cpython-311.pyc b/api/__pycache__/models.cpython-311.pyc index 19fbe5d..f82ab9a 100644 Binary files a/api/__pycache__/models.cpython-311.pyc and b/api/__pycache__/models.cpython-311.pyc differ diff --git a/api/__pycache__/serializers.cpython-311.pyc b/api/__pycache__/serializers.cpython-311.pyc index bd8104c..735ff30 100644 Binary files a/api/__pycache__/serializers.cpython-311.pyc and b/api/__pycache__/serializers.cpython-311.pyc differ diff --git a/api/__pycache__/urls.cpython-311.pyc b/api/__pycache__/urls.cpython-311.pyc index dd5424c..196bb0a 100644 Binary files a/api/__pycache__/urls.cpython-311.pyc and b/api/__pycache__/urls.cpython-311.pyc differ diff --git a/api/__pycache__/views.cpython-311.pyc b/api/__pycache__/views.cpython-311.pyc index 7f2680f..421020c 100644 Binary files a/api/__pycache__/views.cpython-311.pyc and b/api/__pycache__/views.cpython-311.pyc differ diff --git a/api/migrations/0001_initial.py b/api/migrations/0001_initial.py index ee34459..8c138ed 100644 --- a/api/migrations/0001_initial.py +++ b/api/migrations/0001_initial.py @@ -1,6 +1,9 @@ -# Generated by Django 5.1.7 on 2025-03-15 08:54 +# Generated by Django 4.2.20 on 2025-04-05 15:24 +from django.conf import settings from django.db import migrations, models +import django.db.models.deletion +import uuid class Migration(migrations.Migration): @@ -8,15 +11,53 @@ class Migration(migrations.Migration): initial = True dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( - name='Todo', + name='Prediction', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('result', models.JSONField()), + ('deleted_at', models.DateTimeField(blank=True, null=True)), + ], + ), + migrations.CreateModel( + name='Satellite', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='User', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ], + ), + migrations.CreateModel( + name='UserPrediction', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=100)), - ('completed', models.BooleanField(default=False)), + ('created_at', models.DateTimeField()), + ('prediction', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.prediction')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='TelemetryPacket', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('timestamp', models.BigIntegerField()), + ('lat', models.FloatField()), + ('lon', models.FloatField()), + ('alt', models.FloatField()), + ('payload', models.JSONField(blank=True, null=True)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('satellite', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='telemetry', to='api.satellite')), ], ), ] diff --git a/api/migrations/0002_prediction_user_userprediction_delete_todo.py b/api/migrations/0002_prediction_user_userprediction_delete_todo.py deleted file mode 100644 index e62cc82..0000000 --- a/api/migrations/0002_prediction_user_userprediction_delete_todo.py +++ /dev/null @@ -1,46 +0,0 @@ -# Generated by Django 5.1.7 on 2025-03-31 10:14 - -import django.db.models.deletion -import uuid -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('api', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Prediction', - fields=[ - ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), - ('created_at', models.DateTimeField(auto_now_add=True)), - ('updated_at', models.DateTimeField(auto_now=True)), - ('result', models.JSONField()), - ('deleted_at', models.DateTimeField(blank=True, null=True)), - ], - ), - migrations.CreateModel( - name='User', - fields=[ - ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), - ], - ), - migrations.CreateModel( - name='UserPrediction', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('created_at', models.DateTimeField(auto_now_add=True)), - ('prediction', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.prediction')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.user')), - ], - options={ - 'unique_together': {('user', 'prediction')}, - }, - ), - migrations.DeleteModel( - name='Todo', - ), - ] diff --git a/api/migrations/0003_alter_userprediction_unique_together_and_more.py b/api/migrations/0003_alter_userprediction_unique_together_and_more.py deleted file mode 100644 index 332ea40..0000000 --- a/api/migrations/0003_alter_userprediction_unique_together_and_more.py +++ /dev/null @@ -1,30 +0,0 @@ -# Generated by Django 5.1.7 on 2025-04-05 10:40 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('api', '0002_prediction_user_userprediction_delete_todo'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AlterUniqueTogether( - name='userprediction', - unique_together=set(), - ), - migrations.AlterField( - model_name='userprediction', - name='created_at', - field=models.DateTimeField(), - ), - migrations.AlterField( - model_name='userprediction', - name='user', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/api/migrations/0004_satellite_telemetrypacket.py b/api/migrations/0004_satellite_telemetrypacket.py deleted file mode 100644 index d7f36cd..0000000 --- a/api/migrations/0004_satellite_telemetrypacket.py +++ /dev/null @@ -1,35 +0,0 @@ -# Generated by Django 5.1.7 on 2025-04-05 13:30 - -import django.db.models.deletion -import uuid -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('api', '0003_alter_userprediction_unique_together_and_more'), - ] - - operations = [ - migrations.CreateModel( - name='Satellite', - fields=[ - ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), - ('name', models.CharField(max_length=100)), - ], - ), - migrations.CreateModel( - name='TelemetryPacket', - fields=[ - ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), - ('timestamp', models.BigIntegerField()), - ('lat', models.FloatField()), - ('lon', models.FloatField()), - ('alt', models.FloatField()), - ('payload', models.JSONField(blank=True, null=True)), - ('created_at', models.DateTimeField(auto_now_add=True)), - ('satellite', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='telemetry', to='api.satellite')), - ], - ), - ] diff --git a/api/migrations/__pycache__/0001_initial.cpython-311.pyc b/api/migrations/__pycache__/0001_initial.cpython-311.pyc index dd81974..5cce3a3 100644 Binary files a/api/migrations/__pycache__/0001_initial.cpython-311.pyc and b/api/migrations/__pycache__/0001_initial.cpython-311.pyc differ diff --git a/api/migrations/__pycache__/0001_initial.cpython-313.pyc b/api/migrations/__pycache__/0001_initial.cpython-313.pyc deleted file mode 100644 index 0939751..0000000 Binary files a/api/migrations/__pycache__/0001_initial.cpython-313.pyc and /dev/null differ diff --git a/api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-311.pyc b/api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-311.pyc deleted file mode 100644 index f5a1716..0000000 Binary files a/api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-311.pyc and /dev/null differ diff --git a/api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-313.pyc b/api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-313.pyc deleted file mode 100644 index cff1936..0000000 Binary files a/api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-313.pyc and /dev/null differ diff --git a/api/migrations/__pycache__/0003_alter_userprediction_unique_together_and_more.cpython-313.pyc b/api/migrations/__pycache__/0003_alter_userprediction_unique_together_and_more.cpython-313.pyc deleted file mode 100644 index e13512f..0000000 Binary files a/api/migrations/__pycache__/0003_alter_userprediction_unique_together_and_more.cpython-313.pyc and /dev/null differ diff --git a/api/migrations/__pycache__/__init__.cpython-311.pyc b/api/migrations/__pycache__/__init__.cpython-311.pyc index 54b62c5..8fc4c03 100644 Binary files a/api/migrations/__pycache__/__init__.cpython-311.pyc and b/api/migrations/__pycache__/__init__.cpython-311.pyc differ diff --git a/api/migrations/__pycache__/__init__.cpython-313.pyc b/api/migrations/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 620db1b..0000000 Binary files a/api/migrations/__pycache__/__init__.cpython-313.pyc and /dev/null differ diff --git a/db.sqlite3 b/db.sqlite3 deleted file mode 100644 index cd0c5f4..0000000 Binary files a/db.sqlite3 and /dev/null differ diff --git a/docker-compose.yml b/docker-compose.yml index aebbcfe..8c6b5bd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,21 +1,30 @@ -version: '3.9' - services: - web: - build: . - command: python manage.py runserver 0.0.0.0:8000 - ports: - - "8000:8000" - volumes: - - .:/app - depends_on: - - db - db: image: postgres:14 environment: - POSTGRES_DB: testapi - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres + POSTGRES_DB: mydb + POSTGRES_USER: myuser + POSTGRES_PASSWORD: mypass + volumes: + - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" + + web: + build: . + command: python manage.py runserver 0.0.0.0:8000 + volumes: + - .:/app + ports: + - "8000:8000" + depends_on: + - db + environment: + - DB_NAME=mydb + - DB_USER=myuser + - DB_PASSWORD=mypass + - DB_HOST=db + - DB_PORT=5432 + +volumes: + postgres_data: diff --git a/requirements.txt b/requirements.txt index 6aae030..ad39d85 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,6 @@ djangorestframework djangorestframework-simplejwt psycopg2-binary drf-spectacular -requests \ No newline at end of file +requests +django-cors-headers + diff --git a/testapi/__pycache__/settings.cpython-311.pyc b/testapi/__pycache__/settings.cpython-311.pyc index 9fd7f24..92a452d 100644 Binary files a/testapi/__pycache__/settings.cpython-311.pyc and b/testapi/__pycache__/settings.cpython-311.pyc differ diff --git a/testapi/__pycache__/settings.cpython-313.pyc b/testapi/__pycache__/settings.cpython-313.pyc index 0b832d5..6e62f8d 100644 Binary files a/testapi/__pycache__/settings.cpython-313.pyc and b/testapi/__pycache__/settings.cpython-313.pyc differ diff --git a/testapi/settings.py b/testapi/settings.py index ba898ed..2d38109 100644 --- a/testapi/settings.py +++ b/testapi/settings.py @@ -11,7 +11,7 @@ https://docs.djangoproject.com/en/5.1/ref/settings/ """ from pathlib import Path - +import os # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent @@ -42,6 +42,7 @@ INSTALLED_APPS = [ 'drf_spectacular', 'corsheaders', 'api.apps.ApiConfig', + ] MIDDLEWARE = [ @@ -89,21 +90,16 @@ WSGI_APPLICATION = 'testapi.wsgi.application' # https://docs.djangoproject.com/en/5.1/ref/settings/#databases DATABASES = { - # 'default': { - # 'ENGINE': 'django.db.backends.postgresql', - # 'NAME': 'drfapi', # Your database name - # 'USER': 'postgres', # Your PostgreSQL username - # 'PASSWORD': '1235', # Your PostgreSQL password - # 'HOST': 'localhost', # Or your DB server's IP - # 'PORT': '5432', # Default PostgreSQL port - # } 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': os.environ.get("DB_NAME", "drfapi"), + 'USER': os.environ.get("DB_USER", "postgres"), + 'PASSWORD': os.environ.get("DB_PASSWORD", "1235"), + 'HOST': os.environ.get("DB_HOST", "localhost"), + 'PORT': os.environ.get("DB_PORT", "5432"), } } - # Password validation # https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators