Compare commits

..

No commits in common. "ai-dev" and "master" have entirely different histories.

12 changed files with 176 additions and 386 deletions

View File

@ -1,10 +1,9 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ar" dir="rtl"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{% block title %}Knowledge Base{% endblock %}</title>
<title>{% block title %}منار التحفيظ{% endblock %}</title>
{% if project_description %} {% if project_description %}
<meta name="description" content="{{ project_description }}"> <meta name="description" content="{{ project_description }}">
<meta property="og:description" content="{{ project_description }}"> <meta property="og:description" content="{{ project_description }}">
@ -14,91 +13,13 @@
<meta property="og:image" content="{{ project_image_url }}"> <meta property="og:image" content="{{ project_image_url }}">
<meta property="twitter:image" content="{{ project_image_url }}"> <meta property="twitter:image" content="{{ project_image_url }}">
{% endif %} {% endif %}
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Lora:wght@700&family=Inter:wght@400;600&display=swap" rel="stylesheet">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
{% load static %} {% load static %}
<link rel="stylesheet" href="{% static 'css/custom.css' %}?v={{ deployment_timestamp }}"> <link rel="stylesheet" href="{% static 'css/custom.css' %}?v={{ deployment_timestamp }}">
{% block head %}{% endblock %} {% block head %}{% endblock %}
</head> </head>
<body> <body>
<header class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
<a class="navbar-brand" href="/">منار التحفيظ</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" href="/">الرئيسية</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/about">من نحن</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/teachers">المعلمون</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">المدونة</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/contact">اتصل بنا</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/admin/">لوحة التحكم</a>
</li>
</ul>
</div>
</div>
</header>
<main>
{% block content %}{% endblock %} {% block content %}{% endblock %}
</main>
<footer class="bg-light text-center text-lg-start mt-auto">
<div class="container p-4">
<div class="row">
<div class="col-lg-6 col-md-12 mb-4 mb-md-0">
<h5 class="text-uppercase">منار التحفيظ</h5>
<p>
موقع متخصص في تعليم وتحفيظ القرآن الكريم عن بعد، باستخدام أحدث التقنيات التعليمية.
</p>
</div>
<div class="col-lg-3 col-md-6 mb-4 mb-md-0">
<h5 class="text-uppercase">روابط</h5>
<ul class="list-unstyled mb-0">
<li><a href="/" class="text-dark">الرئيسية</a></li>
<li><a href="/about" class="text-dark">من نحن</a></li>
<li><a href="/teachers" class="text-dark">المعلمون</a></li>
<li><a href="/contact" class="text-dark">اتصل بنا</a></li>
</ul>
</div>
<div class="col-lg-3 col-md-6 mb-4 mb-md-0">
<h5 class="text-uppercase">تواصل معنا</h5>
<ul class="list-unstyled">
<li><a href="https://wa.me/1234567890" target="_blank" class="text-dark">WhatsApp</a></li>
<li><a href="mailto:info@manar.com" class="text-dark">info@manar.com</a></li>
</ul>
</div>
</div>
</div>
<div class="text-center p-3" style="background-color: rgba(0, 0, 0, 0.2);">
© 2026 منار التحفيظ
</div>
</footer>
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
</body> </body>
</html> </html>

View File

@ -1,19 +0,0 @@
{% extends 'base.html' %}
{% block title %}من نحن - منار التحفيظ{% endblock %}
{% block content %}
<div class="container py-5">
<div class="row">
<div class="col-md-10 offset-md-1 text-center">
<h1 class="mb-4">رسالتنا ورؤيتنا</h1>
<p class="lead">
في "منار التحفيظ"، نؤمن بأن تعلم القرآن الكريم هو رحلة روحية تبني الشخصية وتهذب الأخلاق. تأسست مؤسستنا على يد مجموعة من الخبراء والمختصين في علوم القرآن بهدف تقديم تجربة تعليمية فريدة تجمع بين الأصالة والمعاصرة. نحن نسعى لخدمة كتاب الله من خلال توفير بيئة تعليمية محفزة وميسرة للطلاب من كافة أنحاء العالم، ومساعدتهم على إتقان الحفظ والفهم والتجويد.
</p>
<p class="lead">
رؤيتنا هي أن نكون المنصة الرائدة عالميًا في تعليم القرآن عن بعد، وأن نصل بنور القرآن إلى كل بيت، ونساهم في تنشئة جيل مرتبط بكتاب الله، عامل به في حياته.
</p>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,18 +0,0 @@
{% extends 'base.html' %}
{% block title %}اتصل بنا - منار التحفيظ{% endblock %}
{% block content %}
<div class="container py-5">
<div class="row">
<div class="col-md-8 offset-md-2 text-center">
<h1 class="mb-4">تواصل معنا</h1>
<p class="lead">يسعدنا استقبال استفساراتكم واقتراحاتكم. يمكنكم التواصل معنا عبر القنوات التالية:</p>
<div class="mt-4">
<h4><strong>البريد الإلكتروني:</strong> <a href="mailto:info@manar.com">info@manar.com</a></h4>
<h4><strong>واتساب:</strong> <a href="https://wa.me/1234567890" target="_blank">+1 (234) 567-890</a></h4>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,90 +1,145 @@
{% extends 'base.html' %} {% extends "base.html" %}
{% load static %}
{% block title %}منار التحفيظ - الرئيسية{% endblock %} {% block title %}{{ project_name }}{% endblock %}
{% block head %} {% block head %}
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.hero-section { :root {
background: linear-gradient(135deg, rgba(0, 77, 64, 0.8), rgba(253, 251, 246, 0.5)); --bg-color-start: #6a11cb;
padding: 100px 0; --bg-color-end: #2575fc;
color: white; --text-color: #ffffff;
--card-bg-color: rgba(255, 255, 255, 0.01);
--card-border-color: rgba(255, 255, 255, 0.1);
} }
.hero-section h1 {
font-size: 3.5rem; * {
box-sizing: border-box;
}
body {
margin: 0;
font-family: 'Inter', sans-serif;
background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
color: var(--text-color);
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
text-align: center;
overflow: hidden;
position: relative;
}
body::before {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'><path d='M-10 10L110 10M10 -10L10 110' stroke-width='1' stroke='rgba(255,255,255,0.05)'/></svg>");
animation: bg-pan 20s linear infinite;
z-index: -1;
}
@keyframes bg-pan {
0% {
background-position: 0% 0%;
}
100% {
background-position: 100% 100%;
}
}
main {
padding: 2rem;
}
.card {
background: var(--card-bg-color);
border: 1px solid var(--card-border-color);
border-radius: 16px;
padding: 2.5rem 2rem;
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: 0 12px 36px rgba(0, 0, 0, 0.25);
}
h1 {
font-size: clamp(2.2rem, 3vw + 1.2rem, 3.2rem);
font-weight: 700; font-weight: 700;
color: white; margin: 0 0 1.2rem;
letter-spacing: -0.02em;
} }
.hero-section .lead {
font-size: 1.5rem; p {
margin: 0.5rem 0;
font-size: 1.1rem;
opacity: 0.92;
} }
.section {
padding: 60px 0; .loader {
margin: 1.5rem auto;
width: 56px;
height: 56px;
border: 4px solid rgba(255, 255, 255, 0.25);
border-top-color: #fff;
border-radius: 50%;
animation: spin 1s linear infinite;
} }
.teacher-card {
border: none; @keyframes spin {
box-shadow: 0 4px 8px rgba(0,0,0,0.1); to {
transform: rotate(360deg);
}
}
.runtime code {
background: rgba(0, 0, 0, 0.25);
padding: 0.15rem 0.45rem;
border-radius: 4px;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
footer {
position: absolute;
bottom: 1rem;
width: 100%;
text-align: center;
font-size: 0.85rem;
opacity: 0.75;
} }
</style> </style>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="hero-section text-center"> <main>
<div class="container"> <div class="card">
<h1>أنر دربك بحفظ كتاب الله</h1> <h1>Analyzing your requirements and generating your app…</h1>
<p class="lead">انضم إلينا في رحلة إيمانية لتعلم وحفظ القرآن الكريم مع نخبة من المعلمين المهرة.</p> <div class="loader" role="status" aria-live="polite" aria-label="Applying initial changes">
<a href="#" class="btn btn-secondary btn-lg">اكتشف برامجنا</a> <span class="sr-only">Loading…</span>
</div> </div>
</div> <p class="hint">AppWizzy AI is collecting your requirements and applying the first changes.</p>
<p class="hint">This page will refresh automatically as the plan is implemented.</p>
<section id="about-snippet" class="section bg-white"> <p class="runtime">
<div class="container"> Runtime: Django <code>{{ django_version }}</code> · Python <code>{{ python_version }}</code>
<div class="row"> — UTC <code>{{ current_time|date:"Y-m-d H:i:s" }}</code>
<div class="col-md-8 offset-md-2 text-center"> </p>
<h2>عن منار التحفيظ</h2>
<p class="lead">نحن مؤسسة تعليمية تهدف إلى تيسير تعلم القرآن الكريم وحفظه لجميع الأعمار حول العالم، باستخدام أساليب تفاعلية ومنهجية مبتكرة.</p>
<a href="/about" class="btn btn-primary">اعرف المزيد</a>
</div> </div>
</div> </main>
</div> <footer>
</section> Page updated: {{ current_time|date:"Y-m-d H:i:s" }} (UTC)
</footer>
<section id="teachers-preview" class="section">
<div class="container">
<div class="row mb-4">
<div class="col text-center">
<h2>نخبة من المعلمين</h2>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="card teacher-card text-center p-3">
<img src="https://i.pravatar.cc/150?img=1" class="rounded-circle mx-auto" alt="Teacher">
<div class="card-body">
<h5 class="card-title">الشيخ أحمد المصري</h5>
<p class="card-text">إجازة في القراءات العشر</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card teacher-card text-center p-3">
<img src="https://i.pravatar.cc/150?img=2" class="rounded-circle mx-auto" alt="Teacher">
<div class="card-body">
<h5 class="card-title">الأستاذة فاطمة الهاشمي</h5>
<p class="card-text">خبرة 10 سنوات في تعليم الأطفال</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card teacher-card text-center p-3">
<img src="https://i.pravatar.cc/150?img=3" class="rounded-circle mx-auto" alt="Teacher">
<div class="card-body">
<h5 class="card-title">الدكتور يوسف عبد الرحمن</h5>
<p class="card-text">متخصص في علوم التجويد</p>
</div>
</div>
</div>
</div>
</div>
</section>
{% endblock %} {% endblock %}

View File

@ -1,46 +0,0 @@
{% extends 'base.html' %}
{% block title %}المعلمون - منار التحفيظ{% endblock %}
{% block content %}
<div class="container py-5">
<div class="row mb-4">
<div class="col text-center">
<h1>فريقنا من المعلمين والمعلمات</h1>
<p class="lead">نفخر بضم نخبة من المعلمين المهرة من أصحاب الخبرة والكفاءة العالية.</p>
</div>
</div>
<div class="row">
<!-- Dummy Teacher 1 -->
<div class="col-md-4 mb-4">
<div class="card h-100 text-center p-3">
<img src="https://i.pravatar.cc/150?img=1" class="rounded-circle mx-auto mb-3" alt="Teacher">
<div class="card-body">
<h5 class="card-title">الشيخ أحمد المصري</h5>
<p class="card-text">إجازة في القراءات العشر من الأزهر الشريف. خبرة 15 عامًا في تحفيظ القرآن للكبار والصغار.</p>
</div>
</div>
</div>
<!-- Dummy Teacher 2 -->
<div class="col-md-4 mb-4">
<div class="card h-100 text-center p-3">
<img src="https://i.pravatar.cc/150?img=2" class="rounded-circle mx-auto mb-3" alt="Teacher">
<div class="card-body">
<h5 class="card-title">الأستاذة فاطمة الهاشمي</h5>
<p class="card-text">متخصصة في تعليم الأطفال وتطبيق أساليب نور البيان. خبرة 10 سنوات في التعامل مع الأطفال.</p>
</div>
</div>
</div>
<!-- Dummy Teacher 3 -->
<div class="col-md-4 mb-4">
<div class="card h-100 text-center p-3">
<img src="https://i.pravatar.cc/150?img=3" class="rounded-circle mx-auto mb-3" alt="Teacher">
<div class="card-body">
<h5 class="card-title">الدكتور يوسف عبد الرحمن</h5>
<p class="card-text">أستاذ جامعي متخصص في علوم التجويد والتفسير. له العديد من الأبحاث المنشورة في مجال الدراسات القرآنية.</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,9 +1,7 @@
from django.urls import path from django.urls import path
from .views import HomeView, AboutView, TeachersView, ContactView
from .views import home
urlpatterns = [ urlpatterns = [
path("", HomeView.as_view(), name="home"), path("", home, name="home"),
path("about/", AboutView.as_view(), name="about"),
path("teachers/", TeachersView.as_view(), name="teachers"),
path("contact/", ContactView.as_view(), name="contact"),
] ]

View File

@ -1,15 +1,25 @@
import os
import platform
from django import get_version as django_version
from django.shortcuts import render from django.shortcuts import render
from django.views.generic import TemplateView from django.utils import timezone
class HomeView(TemplateView):
template_name = "core/index.html"
class AboutView(TemplateView): def home(request):
template_name = "core/about.html" """Render the landing screen with loader and environment details."""
host_name = request.get_host().lower()
class TeachersView(TemplateView): agent_brand = "AppWizzy" if host_name == "appwizzy.com" else "Flatlogic"
template_name = "core/teachers.html" now = timezone.now()
class ContactView(TemplateView):
template_name = "core/contact.html"
context = {
"project_name": "New Style",
"agent_brand": agent_brand,
"django_version": django_version(),
"python_version": platform.python_version(),
"current_time": now,
"host_name": host_name,
"project_description": os.getenv("PROJECT_DESCRIPTION", ""),
"project_image_url": os.getenv("PROJECT_IMAGE_URL", ""),
}
return render(request, "core/index.html", context)

View File

@ -1,68 +1,4 @@
:root { /* Custom styles for the application */
--primary-color: #004d40;
--secondary-color: #FFC107;
--neutral-color: #FDFBF6;
--text-color: #333333;
}
body { body {
font-family: 'Inter', sans-serif; font-family: system-ui, -apple-system, sans-serif;
background-color: var(--neutral-color);
color: var(--text-color);
display: flex;
flex-direction: column;
min-height: 100vh;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Lora', serif;
color: var(--primary-color);
}
.navbar {
background-color: var(--neutral-color) !important;
border-bottom: 1px solid #eee;
}
.navbar-brand {
font-family: 'Lora', serif;
font-weight: 700;
font-size: 1.5rem;
color: var(--primary-color) !important;
}
.nav-link {
font-weight: 600;
color: var(--primary-color) !important;
}
.nav-link:hover {
color: var(--secondary-color) !important;
}
footer {
background-color: var(--neutral-color) !important;
border-top: 1px solid #eee;
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
}
.btn-primary:hover {
background-color: #00382e;
border-color: #00382e;
}
.btn-secondary {
background-color: var(--secondary-color);
border-color: var(--secondary-color);
color: #333;
}
.btn-secondary:hover {
background-color: #e6ac00;
border-color: #e6ac00;
} }

View File

@ -1,68 +1,21 @@
:root {
--primary-color: #004d40;
--secondary-color: #FFC107;
--neutral-color: #FDFBF6;
--text-color: #333333;
}
:root {
--bg-color-start: #6a11cb;
--bg-color-end: #2575fc;
--text-color: #ffffff;
--card-bg-color: rgba(255, 255, 255, 0.01);
--card-border-color: rgba(255, 255, 255, 0.1);
}
body { body {
margin: 0;
font-family: 'Inter', sans-serif; font-family: 'Inter', sans-serif;
background-color: var(--neutral-color); background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
color: var(--text-color); color: var(--text-color);
display: flex; display: flex;
flex-direction: column; justify-content: center;
align-items: center;
min-height: 100vh; min-height: 100vh;
} text-align: center;
overflow: hidden;
h1, h2, h3, h4, h5, h6 { position: relative;
font-family: 'Lora', serif;
color: var(--primary-color);
}
.navbar {
background-color: var(--neutral-color) !important;
border-bottom: 1px solid #eee;
}
.navbar-brand {
font-family: 'Lora', serif;
font-weight: 700;
font-size: 1.5rem;
color: var(--primary-color) !important;
}
.nav-link {
font-weight: 600;
color: var(--primary-color) !important;
}
.nav-link:hover {
color: var(--secondary-color) !important;
}
footer {
background-color: var(--neutral-color) !important;
border-top: 1px solid #eee;
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
}
.btn-primary:hover {
background-color: #00382e;
border-color: #00382e;
}
.btn-secondary {
background-color: var(--secondary-color);
border-color: var(--secondary-color);
color: #333;
}
.btn-secondary:hover {
background-color: #e6ac00;
border-color: #e6ac00;
} }