diff --git a/.gitignore b/.gitignore index e427ff3..be97e45 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,13 @@ node_modules/ */node_modules/ */build/ + +__pycache__/ +*.pyc +*.pyo +.env +*.db +*.sqlite3 +.DS_Store +media/ +.venv/ \ No newline at end of file diff --git a/config/__pycache__/settings.cpython-311.pyc b/config/__pycache__/settings.cpython-311.pyc index ed232a3..e40dcaa 100644 Binary files a/config/__pycache__/settings.cpython-311.pyc and b/config/__pycache__/settings.cpython-311.pyc differ diff --git a/config/settings.py b/config/settings.py index 5ddf3ba..26684a0 100644 --- a/config/settings.py +++ b/config/settings.py @@ -154,7 +154,7 @@ STATICFILES_DIRS = [ BASE_DIR / 'node_modules', ] -MEDIA_URL = 'media/' +MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR / 'media' # Email @@ -184,4 +184,4 @@ if EMAIL_USE_SSL: DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' LOGIN_URL = 'login' LOGIN_REDIRECT_URL = 'home' -LOGOUT_REDIRECT_URL = 'login' +LOGOUT_REDIRECT_URL = 'login' \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 7908add..a30da09 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,36 +1,5 @@ -anyio==4.12.1 -asgiref==3.10.0 -certifi==2022.9.24 -chardet==5.1.0 -charset-normalizer==3.0.1 -dbus-python==1.3.2 -distro-info==1.5+deb12u1 Django==5.2.7 -h11==0.16.0 -httpcore==1.0.9 -httplib2==0.20.4 -httpx==0.28.1 -idna==3.3 -markdown-it-py==2.1.0 -mdurl==0.1.2 mysqlclient==2.2.7 -netifaces==0.11.0 -pillow==12.1.1 -pycurl==7.45.2 -Pygments==2.14.0 -PyGObject==3.42.2 -pyparsing==3.0.9 -PySimpleSOAP==1.16.2 -python-apt==2.6.0 -python-debian==0.1.49 -python-debianbts==4.0.1 python-dotenv==1.1.1 -PyYAML==6.0 -reportbug==12.0.0 -requests==2.28.1 -rich==13.3.1 -six==1.16.0 -sqlparse==0.5.3 -typing_extensions==4.15.0 -unattended-upgrades==0.1 -urllib3==1.26.12 +pillow==12.1.1 +xhtml2pdf==0.2.16 \ No newline at end of file diff --git a/static/css/custom.css b/static/css/custom.css index 0d3212e..b696b46 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -1,34 +1,65 @@ :root { - --primary: #2F3E46; - --secondary: #84A59D; - --accent: #FFD166; - --background: #F7F7F7; - --text: #354F52; + --primary-dark: #0f172a; + --primary: #1e293b; + --accent: #10b981; + --background: #f1f5f9; + --text-main: #334155; + --text-secondary: #64748b; } body { - font-family: 'Open Sans', sans-serif; + font-family: 'Inter', sans-serif; background-color: var(--background); - color: var(--text); + color: var(--text-main); } h1, h2, h3, h4, h5, h6 { - font-family: 'Montserrat', sans-serif; + font-family: 'Poppins', sans-serif; + color: var(--primary); font-weight: 700; } .navbar { - background-color: var(--primary) !important; + background-color: var(--primary-dark) !important; } .btn-primary { - background-color: var(--secondary); - border-color: var(--secondary); + background-color: var(--primary); + border-color: var(--primary); } .btn-primary:hover { - background-color: var(--primary); - border-color: var(--primary); + background-color: var(--primary-dark); + border-color: var(--primary-dark); +} + +.btn-accent { + background-color: var(--accent); + color: white; + font-weight: 600; + border-radius: 0.375rem; /* Bootstrap rounded */ + border: none; +} + +.btn-accent:hover { + background-color: #0d9668; /* slightly darker green for hover */ + color: white; +} + +.stat-card { + background-color: rgba(255, 255, 255, 0.7); + backdrop-filter: blur(10px); + border: none; + border-radius: 0.5rem; /* rounded corners */ + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); /* subtle shadow */ +} + +.dashboard-header { + background: linear-gradient(135deg, var(--primary) 0%, var(--text-main) 100%); + color: white; + padding: 2rem; + margin-bottom: -4rem; /* negative bottom margin */ + border-radius: 0.5rem; } .card { @@ -37,13 +68,13 @@ h1, h2, h3, h4, h5, h6 { } .hero-section { - background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); + background: linear-gradient(135deg, var(--primary) 0%, var(--text-secondary) 100%); color: white; padding: 100px 0; } .footer { - background-color: var(--primary); + background-color: var(--primary-dark); color: white; padding: 20px 0; margin-top: 50px;