diff --git a/config/__pycache__/settings.cpython-311.pyc b/config/__pycache__/settings.cpython-311.pyc index dadfaa7..6fe3b9f 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 001b8c8..2225110 100644 --- a/config/settings.py +++ b/config/settings.py @@ -152,3 +152,6 @@ STATICFILES_DIRS = [ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' X_FRAME_OPTIONS = 'ALLOWALL' + +LOGIN_REDIRECT_URL = '/' +LOGOUT_REDIRECT_URL = '/' diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 1f807fa..4f83a45 100644 Binary files a/core/__pycache__/urls.cpython-311.pyc and b/core/__pycache__/urls.cpython-311.pyc differ diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 6867ddf..ef2eff0 100644 Binary files a/core/__pycache__/views.cpython-311.pyc and b/core/__pycache__/views.cpython-311.pyc differ diff --git a/core/templates/base.html b/core/templates/base.html index 788576e..97e0c0e 100644 --- a/core/templates/base.html +++ b/core/templates/base.html @@ -1,11 +1,57 @@ +{% load static %} - + - {% block title %}Knowledge Base{% endblock %} - {% block head %}{% endblock %} - - - {% block content %}{% endblock %} - + + {% block title %}GenZ Pharma{% endblock %} + + + + + + + +
+ {% block content %} + {% endblock %} +
+ + + + + diff --git a/core/templates/core/index.html b/core/templates/core/index.html index 0a3f404..0ac0846 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -1,154 +1,66 @@ -{% extends "base.html" %} +{% extends 'base.html' %} +{% load static %} -{% block title %}{{ project_name }}{% endblock %} - -{% block head %} -{% if project_description %} - - - -{% endif %} -{% if project_image_url %} - - -{% endif %} - - - - -{% endblock %} +{% block title %}GenZ Pharma - Welcome{% endblock %} {% block content %} -
-
-

Analyzing your requirements and generating your app…

-
- Loading… + +
+
+

Innovating for a Healthier Tomorrow

+

GenZ Pharma is dedicated to pioneering new solutions in pharmaceuticals, from research to delivery.

+ Get Started + Learn More
-

AppWizzy AI is collecting your requirements and applying the first changes.

-

This page will refresh automatically as the plan is implemented.

-

- Runtime: Django {{ django_version }} · Python {{ python_version }} - — UTC {{ current_time|date:"Y-m-d H:i:s" }} -

-
-
- -{% endblock %} \ No newline at end of file + + + +
+
+
+

Our Platform

+

A unified solution for pharmaceutical management.

+
+
+
+
+ +
+

Real-time Monitoring

+

Track inventory, shipments, and user activity with live data dashboards.

+
+
+
+ +
+

Regulatory Compliance

+

Manage documents, track batch expirations, and report adverse events seamlessly.

+
+
+
+ +
+

User Management

+

Admins can easily view user profiles, manage access, and monitor activity.

+
+
+
+
+ + +
+
+
+
+

About GenZ Pharma

+

We are a forward-thinking pharmaceutical company committed to leveraging technology to improve healthcare outcomes. Our mission is to ensure safety, efficiency, and transparency in the entire pharmaceutical lifecycle.

+

From pioneering research and development to ensuring regulatory standards are met, GenZ Pharma is your trusted partner in health.

+
+
+ Doctor using a tablet +
+
+
+
+ +{% endblock %} diff --git a/core/templates/registration/login.html b/core/templates/registration/login.html new file mode 100644 index 0000000..b5496ba --- /dev/null +++ b/core/templates/registration/login.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block content %} +
+
+

Login

+
+ {% csrf_token %} + {{ form.as_p }} +
+ +
+
+ Don't have an account? Sign Up +
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/core/templates/registration/signup.html b/core/templates/registration/signup.html new file mode 100644 index 0000000..02d0f11 --- /dev/null +++ b/core/templates/registration/signup.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block content %} +
+
+

Create Account

+
+ {% csrf_token %} + {{ form.as_p }} +
+ +
+
+ Already have an account? Login +
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/core/urls.py b/core/urls.py index 6299e3d..697ce77 100644 --- a/core/urls.py +++ b/core/urls.py @@ -1,7 +1,11 @@ -from django.urls import path +from django.urls import path, include +from django.views.generic import RedirectView -from .views import home +from .views import home, SignUpView urlpatterns = [ path("", home, name="home"), + path("accounts/", include("django.contrib.auth.urls")), + path("signup/", SignUpView.as_view(), name="signup"), + path('login/', RedirectView.as_view(url='/accounts/login/'), name='login'), ] diff --git a/core/views.py b/core/views.py index c9aed12..5dfb17b 100644 --- a/core/views.py +++ b/core/views.py @@ -4,6 +4,15 @@ import platform from django import get_version as django_version from django.shortcuts import render from django.utils import timezone +from django.contrib.auth.forms import UserCreationForm +from django.urls import reverse_lazy +from django.views import generic + + +class SignUpView(generic.CreateView): + form_class = UserCreationForm + success_url = reverse_lazy("login") + template_name = "registration/signup.html" def home(request): diff --git a/static/css/custom.css b/static/css/custom.css new file mode 100644 index 0000000..0929bc2 --- /dev/null +++ b/static/css/custom.css @@ -0,0 +1,160 @@ +/* GenZ Pharma Custom Styles */ + +/* Typography */ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@600;700&family=Inter:wght@400;500&display=swap'); + +:root { + --primary-color: #1D4ED8; + --secondary-color: #F3F4F6; + --accent-color: #34D399; + --text-color: #111827; + --bs-body-font-family: 'Inter', sans-serif; + --bs-body-color: var(--text-color); +} + +h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + font-family: 'Poppins', sans-serif; + font-weight: 600; +} + +/* Buttons */ +.btn-primary { + background-color: var(--primary-color); + border-color: var(--primary-color); + padding: 0.75rem 1.5rem; + font-weight: 500; + transition: background-color 0.3s ease; +} + +.btn-primary:hover { + background-color: #1e40af; /* A slightly darker shade of primary */ + border-color: #1e40af; +} + +.btn-accent { + background-color: var(--accent-color); + border-color: var(--accent-color); + color: white; + padding: 0.75rem 1.5rem; + font-weight: 500; + transition: background-color 0.3s ease; +} + +.btn-accent:hover { + background-color: #2aa779; /* A slightly darker shade of accent */ + border-color: #2aa779; +} + +/* Navbar */ +.navbar { + transition: background-color 0.3s ease; +} + +/* Hero Section */ +.hero { + background: linear-gradient(135deg, var(--primary-color) 0%, #3b82f6 100%); + color: white; + padding: 6rem 0; +} + +.hero h1 { + font-weight: 700; +} + +/* Section Styling */ +.section { + padding: 4rem 0; +} + +.section-bg { + background-color: var(--secondary-color); +} + +.feature-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 4rem; + height: 4rem; + border-radius: 50%; + background-color: var(--primary-color); + color: white; + font-size: 2rem; + margin-bottom: 1rem; +} + +/* Footer */ +.footer { + background-color: var(--text-color); + color: var(--secondary-color); + padding: 3rem 0; +} + +.footer a { + color: var(--secondary-color); + text-decoration: none; +} + +.footer a:hover { + color: var(--accent-color); +} + +/* Authentication Pages */ +.auth-container { + display: flex; + align-items: center; + justify-content: center; + min-height: calc(100vh - 140px); /* Adjust based on header/footer height */ + background-color: #f9fafb; +} + +.auth-card { + width: 100%; + max-width: 450px; + padding: 2.5rem; + border: 1px solid #e5e7eb; + border-radius: 0.75rem; + background-color: #ffffff; + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.05); +} + +.auth-card .card-title { + font-weight: 700; + color: var(--text-color); +} + +.auth-card form p { + margin-bottom: 1rem; +} + +.auth-card form label { + display: block; + margin-bottom: 0.5rem; + font-weight: 500; + color: #374151; +} + +.auth-card form input[type="text"], +.auth-card form input[type="password"], +.auth-card form input[type="email"] { + display: block; + width: 100%; + padding: 0.75rem 1rem; + border: 1px solid #d1d5db; + border-radius: 0.375rem; + transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out; +} + +.auth-card form input[type="text"]:focus, +.auth-card form input[type="password"]:focus, +.auth-card form input[type="email"]:focus { + outline: none; + border-color: var(--primary-color); + box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.3); +} + +.auth-card .btn-primary { + width: 100%; + padding: 0.875rem; + font-size: 1rem; +} \ No newline at end of file