diff --git a/backend/fintrack/db.sqlite3 b/backend/fintrack/db.sqlite3 index e69de29..68f13c6 100644 Binary files a/backend/fintrack/db.sqlite3 and b/backend/fintrack/db.sqlite3 differ diff --git a/backend/fintrack/fintrack/__pycache__/__init__.cpython-310.pyc b/backend/fintrack/fintrack/__pycache__/__init__.cpython-310.pyc index 5459e98..7bbaeb0 100644 Binary files a/backend/fintrack/fintrack/__pycache__/__init__.cpython-310.pyc and b/backend/fintrack/fintrack/__pycache__/__init__.cpython-310.pyc differ diff --git a/backend/fintrack/fintrack/__pycache__/settings.cpython-310.pyc b/backend/fintrack/fintrack/__pycache__/settings.cpython-310.pyc index 9a7f958..f34a92a 100644 Binary files a/backend/fintrack/fintrack/__pycache__/settings.cpython-310.pyc and b/backend/fintrack/fintrack/__pycache__/settings.cpython-310.pyc differ diff --git a/backend/fintrack/fintrack/__pycache__/urls.cpython-310.pyc b/backend/fintrack/fintrack/__pycache__/urls.cpython-310.pyc index 82128ac..46143ba 100644 Binary files a/backend/fintrack/fintrack/__pycache__/urls.cpython-310.pyc and b/backend/fintrack/fintrack/__pycache__/urls.cpython-310.pyc differ diff --git a/backend/fintrack/fintrack/__pycache__/wsgi.cpython-310.pyc b/backend/fintrack/fintrack/__pycache__/wsgi.cpython-310.pyc index a78ad3f..6dbcfe6 100644 Binary files a/backend/fintrack/fintrack/__pycache__/wsgi.cpython-310.pyc and b/backend/fintrack/fintrack/__pycache__/wsgi.cpython-310.pyc differ diff --git a/backend/fintrack/fintrack/settings.py b/backend/fintrack/fintrack/settings.py index 72bd21e..b0d30ae 100644 --- a/backend/fintrack/fintrack/settings.py +++ b/backend/fintrack/fintrack/settings.py @@ -37,6 +37,8 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + + 'user_budget', ] MIDDLEWARE = [ diff --git a/backend/fintrack/fintrack/urls.py b/backend/fintrack/fintrack/urls.py index 1a8bf22..06b3087 100644 --- a/backend/fintrack/fintrack/urls.py +++ b/backend/fintrack/fintrack/urls.py @@ -16,7 +16,10 @@ """ from django.contrib import admin from django.urls import path +from django.urls import include +from user_budget import views as expense_views urlpatterns = [ path('admin/', admin.site.urls), + path('expenses/', expense_views.expenses_info), ] diff --git a/backend/fintrack/user_budget/__init__.py b/backend/fintrack/user_budget/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/fintrack/user_budget/__pycache__/__init__.cpython-310.pyc b/backend/fintrack/user_budget/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..3be973a Binary files /dev/null and b/backend/fintrack/user_budget/__pycache__/__init__.cpython-310.pyc differ diff --git a/backend/fintrack/user_budget/__pycache__/admin.cpython-310.pyc b/backend/fintrack/user_budget/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..7b5bd42 Binary files /dev/null and b/backend/fintrack/user_budget/__pycache__/admin.cpython-310.pyc differ diff --git a/backend/fintrack/user_budget/__pycache__/apps.cpython-310.pyc b/backend/fintrack/user_budget/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..0990992 Binary files /dev/null and b/backend/fintrack/user_budget/__pycache__/apps.cpython-310.pyc differ diff --git a/backend/fintrack/user_budget/__pycache__/models.cpython-310.pyc b/backend/fintrack/user_budget/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..6ae32bf Binary files /dev/null and b/backend/fintrack/user_budget/__pycache__/models.cpython-310.pyc differ diff --git a/backend/fintrack/user_budget/__pycache__/views.cpython-310.pyc b/backend/fintrack/user_budget/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..617a6b5 Binary files /dev/null and b/backend/fintrack/user_budget/__pycache__/views.cpython-310.pyc differ diff --git a/backend/fintrack/user_budget/admin.py b/backend/fintrack/user_budget/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/backend/fintrack/user_budget/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/fintrack/user_budget/apps.py b/backend/fintrack/user_budget/apps.py new file mode 100644 index 0000000..06ba8f8 --- /dev/null +++ b/backend/fintrack/user_budget/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UserBudgetConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'user_budget' diff --git a/backend/fintrack/user_budget/expenses/expenses_info.html b/backend/fintrack/user_budget/expenses/expenses_info.html new file mode 100644 index 0000000..9239c97 --- /dev/null +++ b/backend/fintrack/user_budget/expenses/expenses_info.html @@ -0,0 +1,13 @@ + + + + + + + HTML 5 Boilerplate + + + + + + diff --git a/backend/fintrack/user_budget/migrations/0001_initial.py b/backend/fintrack/user_budget/migrations/0001_initial.py new file mode 100644 index 0000000..c8a451d --- /dev/null +++ b/backend/fintrack/user_budget/migrations/0001_initial.py @@ -0,0 +1,37 @@ +# Generated by Django 5.0.6 on 2024-08-17 13:47 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Expenses', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('housing', models.DecimalField(decimal_places=2, max_digits=10)), + ('transportation', models.DecimalField(decimal_places=2, max_digits=10)), + ('food', models.DecimalField(decimal_places=2, max_digits=10)), + ('entertainment', models.DecimalField(decimal_places=2, max_digits=10)), + ('personal_care', models.DecimalField(decimal_places=2, max_digits=10)), + ('debt_payment', models.DecimalField(decimal_places=2, max_digits=10)), + ('savings', models.DecimalField(decimal_places=2, max_digits=10)), + ], + ), + migrations.CreateModel( + name='Expenditures', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('Date', models.DateField()), + ('Amount', models.DecimalField(decimal_places=2, max_digits=10)), + ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user_budget.expenses')), + ], + ), + ] diff --git a/backend/fintrack/user_budget/migrations/__init__.py b/backend/fintrack/user_budget/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/fintrack/user_budget/migrations/__pycache__/0001_initial.cpython-310.pyc b/backend/fintrack/user_budget/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..e47304a Binary files /dev/null and b/backend/fintrack/user_budget/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/backend/fintrack/user_budget/migrations/__pycache__/__init__.cpython-310.pyc b/backend/fintrack/user_budget/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..821f8d5 Binary files /dev/null and b/backend/fintrack/user_budget/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/backend/fintrack/user_budget/models.py b/backend/fintrack/user_budget/models.py new file mode 100644 index 0000000..7680bd0 --- /dev/null +++ b/backend/fintrack/user_budget/models.py @@ -0,0 +1,24 @@ +from django.db import models + +# Create your models here. +from django.db import models + +class Expenses(models.Model): + housing = models.DecimalField(max_digits=10, decimal_places=2) + transportation = models.DecimalField(max_digits=10, decimal_places=2) + food = models.DecimalField(max_digits=10, decimal_places=2) + entertainment = models.DecimalField(max_digits=10, decimal_places=2) + personal_care = models.DecimalField(max_digits=10, decimal_places=2) + debt_payment = models.DecimalField(max_digits=10, decimal_places=2) + savings = models.DecimalField(max_digits=10, decimal_places=2) + + def __str__(self): + return f"{self.housing} {self.transportation} {self.food} {self.entertainment} {self.personal_care} {self.debt_payment} {self.savings}" + + def total(self): + return self.housing + self.transportation + self.food + self.entertainment + self.personal_care + self.debt_payment + self.savings + +class Expenditures(models.Model): + Date = models.DateField() + Amount = models.DecimalField(max_digits=10, decimal_places=2) + category = models.ForeignKey(Expenses, on_delete=models.CASCADE) diff --git a/backend/fintrack/user_budget/templates/expenses/expenses_info.html b/backend/fintrack/user_budget/templates/expenses/expenses_info.html new file mode 100644 index 0000000..ace7d5d --- /dev/null +++ b/backend/fintrack/user_budget/templates/expenses/expenses_info.html @@ -0,0 +1,14 @@ + + + + + + + HTML 5 Boilerplate + + + + +

Expenses

+ + diff --git a/backend/fintrack/user_budget/tests.py b/backend/fintrack/user_budget/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/backend/fintrack/user_budget/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/fintrack/user_budget/views.py b/backend/fintrack/user_budget/views.py new file mode 100644 index 0000000..de14279 --- /dev/null +++ b/backend/fintrack/user_budget/views.py @@ -0,0 +1,16 @@ +from django.shortcuts import render +from .models import Expenses, Expenditures +from django.http import HttpResponse + + + +# Create your views here +def expenses_info(request): + expenses = Expenses.objects.all() + expenditures = Expenditures.objects.select_related('category').all() + context = { + 'expenses': expenses, + 'expenditures': expenditures, + } + return render(request, 'expenses/expenses_info.html', context) +