Deploy: 2026-05-26 22:13:37
24
backend/public/check_user_temp.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
require_once dirname(__DIR__) . '/app/bootstrap.php';
|
||||||
|
use App\Core\Database;
|
||||||
|
use App\Core\Security;
|
||||||
|
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
|
try {
|
||||||
|
$users = Database::select("SELECT id, name, email, password, role FROM users");
|
||||||
|
$result = [];
|
||||||
|
foreach ($users as $u) {
|
||||||
|
$decryptedEmail = Security::decrypt($u['email']);
|
||||||
|
$result[] = [
|
||||||
|
'id' => $u['id'],
|
||||||
|
'name' => $u['name'],
|
||||||
|
'email' => $decryptedEmail,
|
||||||
|
'role' => $u['role'],
|
||||||
|
'password_hash' => $u['password']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
echo json_encode(['status' => 'success', 'users' => $result]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
|
||||||
|
}
|
||||||
@@ -12,19 +12,20 @@
|
|||||||
|
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--bg-color: #080b11;
|
--bg-color: #0b071e;
|
||||||
--panel-bg: rgba(17, 24, 39, 0.7);
|
--panel-bg: rgba(22, 16, 48, 0.7);
|
||||||
--border-color: rgba(255, 255, 255, 0.08);
|
--border-color: rgba(255, 255, 255, 0.08);
|
||||||
|
|
||||||
--primary: #8b5cf6;
|
--primary: #9d4edd;
|
||||||
--primary-glow: rgba(139, 92, 246, 0.15);
|
--primary-glow: rgba(157, 78, 221, 0.2);
|
||||||
--secondary: #06b6d4;
|
--secondary: #240046;
|
||||||
--secondary-glow: rgba(6, 182, 212, 0.15);
|
--accent: #00f5d4;
|
||||||
|
--accent-glow: rgba(0, 245, 212, 0.15);
|
||||||
|
|
||||||
--text-main: #f3f4f6;
|
--text-main: #f8f9fa;
|
||||||
--text-muted: #9ca3af;
|
--text-muted: #b3b3b3;
|
||||||
--success: #10b981;
|
--success: #00f5d4;
|
||||||
--warning: #f59e0b;
|
--warning: #ffb703;
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
@@ -54,23 +55,23 @@
|
|||||||
.glow-1 {
|
.glow-1 {
|
||||||
top: -10%;
|
top: -10%;
|
||||||
left: -10%;
|
left: -10%;
|
||||||
width: 40vw;
|
width: 45vw;
|
||||||
height: 40vw;
|
height: 45vw;
|
||||||
background: radial-gradient(circle, var(--primary) 0%, rgba(0,0,0,0) 70%);
|
background: radial-gradient(circle, var(--primary) 0%, rgba(0,0,0,0) 70%);
|
||||||
}
|
}
|
||||||
.glow-2 {
|
.glow-2 {
|
||||||
top: 40%;
|
top: 35%;
|
||||||
right: -10%;
|
right: -10%;
|
||||||
width: 50vw;
|
width: 50vw;
|
||||||
height: 50vw;
|
height: 50vw;
|
||||||
background: radial-gradient(circle, var(--secondary) 0%, rgba(0,0,0,0) 70%);
|
background: radial-gradient(circle, var(--accent) 0%, rgba(0,0,0,0) 70%);
|
||||||
}
|
}
|
||||||
.glow-3 {
|
.glow-3 {
|
||||||
bottom: -5%;
|
bottom: -5%;
|
||||||
left: 10%;
|
left: 10%;
|
||||||
width: 35vw;
|
width: 35vw;
|
||||||
height: 35vw;
|
height: 35vw;
|
||||||
background: radial-gradient(circle, #4f46e5 0%, rgba(0,0,0,0) 70%);
|
background: radial-gradient(circle, #5a189a 0%, rgba(0,0,0,0) 70%);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Container & Grid layout */
|
/* Container & Grid layout */
|
||||||
@@ -83,9 +84,9 @@
|
|||||||
/* Navbar Styling */
|
/* Navbar Styling */
|
||||||
header {
|
header {
|
||||||
border-bottom: 1px solid var(--border-color);
|
border-bottom: 1px solid var(--border-color);
|
||||||
backdrop-filter: blur(12px);
|
backdrop-filter: blur(16px);
|
||||||
-webkit-backdrop-filter: blur(12px);
|
-webkit-backdrop-filter: blur(16px);
|
||||||
background: rgba(8, 11, 17, 0.75);
|
background: rgba(11, 7, 30, 0.8);
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
@@ -107,14 +108,14 @@
|
|||||||
letter-spacing: -0.5px;
|
letter-spacing: -0.5px;
|
||||||
}
|
}
|
||||||
.logo-icon {
|
.logo-icon {
|
||||||
width: 40px;
|
width: 42px;
|
||||||
height: 40px;
|
height: 42px;
|
||||||
background: linear-gradient(135deg, var(--primary), var(--secondary));
|
background: linear-gradient(135deg, var(--primary), var(--accent));
|
||||||
border-radius: 12px;
|
border-radius: 14px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
box-shadow: 0 4px 20px rgba(139, 92, 246, 0.4);
|
box-shadow: 0 4px 20px rgba(157, 78, 221, 0.4);
|
||||||
}
|
}
|
||||||
.logo-icon svg {
|
.logo-icon svg {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
@@ -141,8 +142,8 @@
|
|||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 0.75rem 1.5rem;
|
padding: 0.75rem 1.6rem;
|
||||||
border-radius: 10px;
|
border-radius: 12px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
@@ -151,53 +152,64 @@
|
|||||||
font-size: 0.95rem;
|
font-size: 0.95rem;
|
||||||
}
|
}
|
||||||
.btn-primary {
|
.btn-primary {
|
||||||
background: linear-gradient(135deg, var(--primary), var(--secondary));
|
background: linear-gradient(135deg, var(--primary), #e0aaff);
|
||||||
color: white;
|
color: #0b071e;
|
||||||
box-shadow: 0 4px 20px rgba(139, 92, 246, 0.35);
|
box-shadow: 0 4px 20px rgba(157, 78, 221, 0.35);
|
||||||
}
|
}
|
||||||
.btn-primary:hover {
|
.btn-primary:hover {
|
||||||
transform: translateY(-2px);
|
transform: translateY(-2px);
|
||||||
box-shadow: 0 6px 25px rgba(139, 92, 246, 0.5);
|
box-shadow: 0 6px 25px rgba(157, 78, 221, 0.5);
|
||||||
|
background: linear-gradient(135deg, #e0aaff, var(--primary));
|
||||||
}
|
}
|
||||||
.btn-secondary {
|
.btn-secondary {
|
||||||
background: rgba(255, 255, 255, 0.05);
|
background: rgba(255, 255, 255, 0.04);
|
||||||
color: var(--text-main);
|
color: var(--text-main);
|
||||||
border: 1px solid var(--border-color);
|
border: 1px solid var(--border-color);
|
||||||
}
|
}
|
||||||
.btn-secondary:hover {
|
.btn-secondary:hover {
|
||||||
background: rgba(255, 255, 255, 0.1);
|
background: rgba(255, 255, 255, 0.08);
|
||||||
|
border-color: rgba(255, 255, 255, 0.2);
|
||||||
transform: translateY(-2px);
|
transform: translateY(-2px);
|
||||||
}
|
}
|
||||||
|
.btn-accent {
|
||||||
|
background: linear-gradient(135deg, var(--accent), #e0aaff);
|
||||||
|
color: #0b071e;
|
||||||
|
box-shadow: 0 4px 20px rgba(0, 245, 212, 0.3);
|
||||||
|
}
|
||||||
|
.btn-accent:hover {
|
||||||
|
transform: translateY(-2px);
|
||||||
|
box-shadow: 0 6px 25px rgba(0, 245, 212, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
/* Hero Section */
|
/* Hero Section */
|
||||||
.hero {
|
.hero {
|
||||||
padding: 5rem 0;
|
padding: 6rem 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.hero-grid {
|
.hero-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1.1fr 0.9fr;
|
||||||
gap: 4rem;
|
gap: 4rem;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
.hero-content h1 {
|
.hero-content h1 {
|
||||||
font-size: 3.2rem;
|
font-size: 3.5rem;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
line-height: 1.25;
|
line-height: 1.25;
|
||||||
margin-bottom: 1.5rem;
|
margin-bottom: 1.5rem;
|
||||||
background: linear-gradient(to left, #ffffff, #c084fc, #22d3ee);
|
background: linear-gradient(to left, #ffffff, #e0aaff, #00f5d4);
|
||||||
-webkit-background-clip: text;
|
-webkit-background-clip: text;
|
||||||
-webkit-text-fill-color: transparent;
|
-webkit-text-fill-color: transparent;
|
||||||
}
|
}
|
||||||
.hero-content p {
|
.hero-content p {
|
||||||
font-size: 1.15rem;
|
font-size: 1.2rem;
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
line-height: 1.8;
|
line-height: 1.8;
|
||||||
margin-bottom: 2.5rem;
|
margin-bottom: 2.5rem;
|
||||||
}
|
}
|
||||||
.hero-actions {
|
.hero-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 1rem;
|
gap: 1.25rem;
|
||||||
}
|
}
|
||||||
.hero-visual {
|
.hero-visual {
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -206,46 +218,49 @@
|
|||||||
}
|
}
|
||||||
.mockup-wrapper {
|
.mockup-wrapper {
|
||||||
position: relative;
|
position: relative;
|
||||||
background: linear-gradient(135deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.01) 100%);
|
background: linear-gradient(135deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 100%);
|
||||||
border: 1px solid var(--border-color);
|
border: 1px solid rgba(255,255,255,0.1);
|
||||||
border-radius: 20px;
|
border-radius: 24px;
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
|
||||||
backdrop-filter: blur(20px);
|
backdrop-filter: blur(20px);
|
||||||
-webkit-backdrop-filter: blur(20px);
|
-webkit-backdrop-filter: blur(20px);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-width: 500px;
|
transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
transition: transform 0.5s ease;
|
|
||||||
}
|
}
|
||||||
.mockup-wrapper:hover {
|
.mockup-wrapper:hover {
|
||||||
transform: rotate(-1deg) scale(1.02);
|
transform: translateY(-5px) scale(1.01);
|
||||||
|
border-color: rgba(157, 78, 221, 0.4);
|
||||||
}
|
}
|
||||||
.mockup-img {
|
.mockup-img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
border-radius: 15px;
|
border-radius: 18px;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Features Section */
|
/* Features Section */
|
||||||
.features {
|
.features {
|
||||||
padding: 6rem 0;
|
padding: 6.5rem 0;
|
||||||
border-top: 1px solid var(--border-color);
|
border-top: 1px solid var(--border-color);
|
||||||
}
|
}
|
||||||
.section-header {
|
.section-header {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
max-width: 600px;
|
max-width: 650px;
|
||||||
margin: 0 auto 4rem auto;
|
margin: 0 auto 4.5rem auto;
|
||||||
}
|
}
|
||||||
.section-header h2 {
|
.section-header h2 {
|
||||||
font-size: 2.2rem;
|
font-size: 2.5rem;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
|
background: linear-gradient(to left, #ffffff, #e0aaff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
}
|
}
|
||||||
.section-header p {
|
.section-header p {
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
font-size: 1.05rem;
|
font-size: 1.1rem;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
}
|
}
|
||||||
.features-grid {
|
.features-grid {
|
||||||
@@ -256,116 +271,66 @@
|
|||||||
.feature-card {
|
.feature-card {
|
||||||
background: var(--panel-bg);
|
background: var(--panel-bg);
|
||||||
border: 1px solid var(--border-color);
|
border: 1px solid var(--border-color);
|
||||||
border-radius: 20px;
|
border-radius: 24px;
|
||||||
padding: 2.2rem;
|
padding: 2.5rem;
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
backdrop-filter: blur(10px);
|
backdrop-filter: blur(10px);
|
||||||
-webkit-backdrop-filter: blur(10px);
|
-webkit-backdrop-filter: blur(10px);
|
||||||
}
|
}
|
||||||
.feature-card:hover {
|
.feature-card:hover {
|
||||||
transform: translateY(-8px);
|
transform: translateY(-8px);
|
||||||
border-color: rgba(139, 92, 246, 0.4);
|
border-color: rgba(157, 78, 221, 0.4);
|
||||||
box-shadow: 0 12px 30px rgba(139, 92, 246, 0.1);
|
box-shadow: 0 12px 30px rgba(157, 78, 221, 0.15);
|
||||||
}
|
}
|
||||||
.feature-icon {
|
.feature-icon {
|
||||||
width: 55px;
|
width: 60px;
|
||||||
height: 55px;
|
height: 60px;
|
||||||
border-radius: 12px;
|
border-radius: 14px;
|
||||||
background: rgba(139, 92, 246, 0.1);
|
background: rgba(157, 78, 221, 0.1);
|
||||||
border: 1px solid rgba(139, 92, 246, 0.2);
|
border: 1px solid rgba(157, 78, 221, 0.2);
|
||||||
color: var(--primary);
|
color: var(--primary);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
font-size: 1.6rem;
|
font-size: 1.8rem;
|
||||||
margin-bottom: 1.5rem;
|
margin-bottom: 1.5rem;
|
||||||
|
box-shadow: 0 4px 15px rgba(157, 78, 221, 0.1);
|
||||||
}
|
}
|
||||||
.feature-card:nth-child(even) .feature-icon {
|
.feature-card:nth-child(even) .feature-icon {
|
||||||
background: rgba(6, 182, 212, 0.1);
|
background: rgba(0, 245, 212, 0.1);
|
||||||
border: 1px solid rgba(6, 182, 212, 0.2);
|
border: 1px solid rgba(0, 245, 212, 0.2);
|
||||||
color: var(--secondary);
|
color: var(--accent);
|
||||||
|
box-shadow: 0 4px 15px rgba(0, 245, 212, 0.1);
|
||||||
}
|
}
|
||||||
.feature-card h3 {
|
.feature-card h3 {
|
||||||
font-size: 1.25rem;
|
font-size: 1.35rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
margin-bottom: 0.75rem;
|
margin-bottom: 0.75rem;
|
||||||
|
color: var(--text-main);
|
||||||
}
|
}
|
||||||
.feature-card p {
|
.feature-card p {
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
font-size: 0.95rem;
|
font-size: 0.98rem;
|
||||||
line-height: 1.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Coming Soon / Roadmap Section */
|
|
||||||
.roadmap {
|
|
||||||
padding: 6rem 0;
|
|
||||||
border-top: 1px solid var(--border-color);
|
|
||||||
background: linear-gradient(180deg, rgba(8,11,17,0) 0%, rgba(139, 92, 246, 0.03) 50%, rgba(8,11,17,0) 100%);
|
|
||||||
}
|
|
||||||
.roadmap-grid {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
||||||
gap: 2rem;
|
|
||||||
}
|
|
||||||
.roadmap-card {
|
|
||||||
background: rgba(17, 24, 39, 0.4);
|
|
||||||
border: 1px solid var(--border-color);
|
|
||||||
border-radius: 20px;
|
|
||||||
padding: 2rem;
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.roadmap-card::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
height: 3px;
|
|
||||||
background: linear-gradient(90deg, var(--primary), var(--secondary));
|
|
||||||
}
|
|
||||||
.badge-soon {
|
|
||||||
position: absolute;
|
|
||||||
top: 1rem;
|
|
||||||
left: 1rem;
|
|
||||||
background: rgba(245, 158, 11, 0.15);
|
|
||||||
border: 1px solid rgba(245, 158, 11, 0.3);
|
|
||||||
color: var(--warning);
|
|
||||||
padding: 0.25rem 0.75rem;
|
|
||||||
border-radius: 30px;
|
|
||||||
font-size: 0.75rem;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
.roadmap-card h3 {
|
|
||||||
font-size: 1.3rem;
|
|
||||||
font-weight: 700;
|
|
||||||
margin-top: 1.5rem;
|
|
||||||
margin-bottom: 0.75rem;
|
|
||||||
}
|
|
||||||
.roadmap-card p {
|
|
||||||
color: var(--text-muted);
|
|
||||||
font-size: 0.9rem;
|
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pricing Section */
|
/* Pricing Section */
|
||||||
.pricing {
|
.pricing {
|
||||||
padding: 6rem 0;
|
padding: 6.5rem 0;
|
||||||
border-top: 1px solid var(--border-color);
|
border-top: 1px solid var(--border-color);
|
||||||
}
|
}
|
||||||
.pricing-grid {
|
.pricing-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
||||||
gap: 2rem;
|
gap: 2rem;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
max-width: 1000px;
|
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
.price-card {
|
.price-card {
|
||||||
background: var(--panel-bg);
|
background: var(--panel-bg);
|
||||||
border: 1px solid var(--border-color);
|
border: 1px solid var(--border-color);
|
||||||
border-radius: 24px;
|
border-radius: 24px;
|
||||||
padding: 3rem 2.5rem;
|
padding: 2.5rem 2rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -373,35 +338,46 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
backdrop-filter: blur(10px);
|
backdrop-filter: blur(10px);
|
||||||
-webkit-backdrop-filter: blur(10px);
|
-webkit-backdrop-filter: blur(10px);
|
||||||
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
}
|
||||||
|
.price-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
border-color: rgba(255, 255, 255, 0.15);
|
||||||
}
|
}
|
||||||
.price-card.featured {
|
.price-card.featured {
|
||||||
border-color: var(--primary);
|
border-color: var(--primary);
|
||||||
box-shadow: 0 10px 40px rgba(139, 92, 246, 0.15);
|
box-shadow: 0 10px 40px rgba(157, 78, 221, 0.15);
|
||||||
|
background: linear-gradient(180deg, rgba(22, 16, 48, 0.9) 0%, rgba(36, 0, 70, 0.6) 100%);
|
||||||
}
|
}
|
||||||
.price-card.featured .popular-tag {
|
.price-card.featured .popular-tag {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -12px;
|
top: -12px;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translateX(-50%);
|
transform: translateX(-50%);
|
||||||
background: var(--primary);
|
background: linear-gradient(135deg, var(--primary), #e0aaff);
|
||||||
color: white;
|
color: #0b071e;
|
||||||
padding: 0.3rem 1.2rem;
|
padding: 0.3rem 1.2rem;
|
||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
font-weight: 700;
|
font-weight: 800;
|
||||||
box-shadow: 0 4px 15px rgba(139, 92, 246, 0.4);
|
box-shadow: 0 4px 15px rgba(157, 78, 221, 0.4);
|
||||||
}
|
}
|
||||||
.price-name {
|
.price-name {
|
||||||
font-size: 1.3rem;
|
font-size: 1.35rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--text-muted);
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
.price-val {
|
|
||||||
font-size: 3rem;
|
|
||||||
font-weight: 800;
|
|
||||||
color: var(--text-main);
|
color: var(--text-main);
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
.price-desc {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--text-muted);
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
.price-val {
|
||||||
|
font-size: 2.8rem;
|
||||||
|
font-weight: 800;
|
||||||
|
color: var(--text-main);
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: baseline;
|
align-items: baseline;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -414,29 +390,29 @@
|
|||||||
}
|
}
|
||||||
.price-features {
|
.price-features {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 2.5rem 0;
|
margin-bottom: 2.5rem;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 1rem;
|
gap: 0.85rem;
|
||||||
}
|
}
|
||||||
.price-features li {
|
.price-features li {
|
||||||
font-size: 0.95rem;
|
font-size: 0.92rem;
|
||||||
color: var(--text-main);
|
color: var(--text-main);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 0.75rem;
|
gap: 0.65rem;
|
||||||
}
|
}
|
||||||
.price-features li svg {
|
.price-features li svg {
|
||||||
width: 18px;
|
width: 16px;
|
||||||
height: 18px;
|
height: 16px;
|
||||||
fill: var(--success);
|
fill: var(--accent);
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Simulated Chat Area */
|
/* Simulated Chat Area */
|
||||||
.chat-demo {
|
.chat-demo {
|
||||||
padding: 6rem 0;
|
padding: 6.5rem 0;
|
||||||
border-top: 1px solid var(--border-color);
|
border-top: 1px solid var(--border-color);
|
||||||
}
|
}
|
||||||
.chat-container {
|
.chat-container {
|
||||||
@@ -446,12 +422,19 @@
|
|||||||
border: 1px solid var(--border-color);
|
border: 1px solid var(--border-color);
|
||||||
border-radius: 24px;
|
border-radius: 24px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);
|
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5);
|
||||||
|
backdrop-filter: blur(20px);
|
||||||
|
-webkit-backdrop-filter: blur(20px);
|
||||||
}
|
}
|
||||||
.chat-header {
|
.chat-header {
|
||||||
background: rgba(255, 255, 255, 0.03);
|
background: rgba(255, 255, 255, 0.03);
|
||||||
border-bottom: 1px solid var(--border-color);
|
border-bottom: 1px solid var(--border-color);
|
||||||
padding: 1.2rem 1.5rem;
|
padding: 1.2rem 1.5rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.chat-header-user {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
@@ -460,12 +443,12 @@
|
|||||||
width: 45px;
|
width: 45px;
|
||||||
height: 45px;
|
height: 45px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: linear-gradient(135deg, var(--primary), var(--secondary));
|
background: linear-gradient(135deg, var(--primary), var(--accent));
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
color: white;
|
color: #0b071e;
|
||||||
font-weight: 700;
|
font-weight: 800;
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
}
|
}
|
||||||
.chat-header-info h4 {
|
.chat-header-info h4 {
|
||||||
@@ -496,13 +479,14 @@
|
|||||||
}
|
}
|
||||||
.msg-in {
|
.msg-in {
|
||||||
align-self: flex-start;
|
align-self: flex-start;
|
||||||
background: rgba(255, 255, 255, 0.06);
|
background: rgba(255, 255, 255, 0.05);
|
||||||
color: var(--text-main);
|
color: var(--text-main);
|
||||||
border-bottom-right-radius: 4px;
|
border-bottom-right-radius: 4px;
|
||||||
|
border: 1px solid rgba(255, 255, 255, 0.03);
|
||||||
}
|
}
|
||||||
.msg-out {
|
.msg-out {
|
||||||
align-self: flex-end;
|
align-self: flex-end;
|
||||||
background: linear-gradient(135deg, var(--primary), #6366f1);
|
background: linear-gradient(135deg, var(--primary), #7209b7);
|
||||||
color: white;
|
color: white;
|
||||||
border-bottom-left-radius: 4px;
|
border-bottom-left-radius: 4px;
|
||||||
}
|
}
|
||||||
@@ -527,11 +511,66 @@
|
|||||||
border-color: var(--primary);
|
border-color: var(--primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Coming Soon / Roadmap Section */
|
||||||
|
.roadmap {
|
||||||
|
padding: 6.5rem 0;
|
||||||
|
border-top: 1px solid var(--border-color);
|
||||||
|
background: linear-gradient(180deg, rgba(8,11,17,0) 0%, rgba(157, 78, 221, 0.03) 50%, rgba(8,11,17,0) 100%);
|
||||||
|
}
|
||||||
|
.roadmap-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
.roadmap-card {
|
||||||
|
background: rgba(22, 16, 48, 0.4);
|
||||||
|
border: 1px solid var(--border-color);
|
||||||
|
border-radius: 24px;
|
||||||
|
padding: 2.2rem;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
-webkit-backdrop-filter: blur(10px);
|
||||||
|
}
|
||||||
|
.roadmap-card::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 3px;
|
||||||
|
background: linear-gradient(90deg, var(--primary), var(--accent));
|
||||||
|
}
|
||||||
|
.badge-soon {
|
||||||
|
position: absolute;
|
||||||
|
top: 1.2rem;
|
||||||
|
left: 1.2rem;
|
||||||
|
background: rgba(255, 183, 3, 0.15);
|
||||||
|
border: 1px solid rgba(255, 183, 3, 0.3);
|
||||||
|
color: var(--warning);
|
||||||
|
padding: 0.25rem 0.75rem;
|
||||||
|
border-radius: 30px;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.roadmap-card h3 {
|
||||||
|
font-size: 1.3rem;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
margin-bottom: 0.75rem;
|
||||||
|
color: var(--text-main);
|
||||||
|
}
|
||||||
|
.roadmap-card p {
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: 0.92rem;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
/* Footer */
|
/* Footer */
|
||||||
footer {
|
footer {
|
||||||
border-top: 1px solid var(--border-color);
|
border-top: 1px solid var(--border-color);
|
||||||
background: #04060a;
|
background: #060411;
|
||||||
padding: 4rem 0 2rem 0;
|
padding: 5rem 0 2rem 0;
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
}
|
}
|
||||||
@@ -539,13 +578,13 @@
|
|||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 2fr 1fr 1fr;
|
grid-template-columns: 2fr 1fr 1fr;
|
||||||
gap: 4rem;
|
gap: 4rem;
|
||||||
margin-bottom: 3rem;
|
margin-bottom: 3.5rem;
|
||||||
}
|
}
|
||||||
.footer-logo {
|
.footer-logo {
|
||||||
font-size: 1.4rem;
|
font-size: 1.5rem;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--text-main);
|
color: var(--text-main);
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1.2rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
@@ -574,6 +613,7 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
padding-top: 2rem;
|
padding-top: 2rem;
|
||||||
border-top: 1px solid var(--border-color);
|
border-top: 1px solid var(--border-color);
|
||||||
|
color: rgba(255,255,255,0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Responsive adjustments */
|
/* Responsive adjustments */
|
||||||
@@ -591,7 +631,7 @@
|
|||||||
gap: 2.5rem;
|
gap: 2.5rem;
|
||||||
}
|
}
|
||||||
.nav-links {
|
.nav-links {
|
||||||
display: none; /* Mobile menu can be added later */
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -615,10 +655,11 @@
|
|||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li><a href="#features">الميزات</a></li>
|
<li><a href="#features">الميزات</a></li>
|
||||||
|
<li><a href="#pricing">باقات الاشتراك</a></li>
|
||||||
|
<li><a href="#demo">التجربة التفاعلية</a></li>
|
||||||
<li><a href="#coming-soon">قريباً</a></li>
|
<li><a href="#coming-soon">قريباً</a></li>
|
||||||
<li><a href="#pricing">الأسعار</a></li>
|
|
||||||
<li><a href="#demo">تجربة حية</a></li>
|
|
||||||
<li><a href="/login" class="btn btn-secondary" style="padding: 0.5rem 1.25rem;">تسجيل الدخول</a></li>
|
<li><a href="/login" class="btn btn-secondary" style="padding: 0.5rem 1.25rem;">تسجيل الدخول</a></li>
|
||||||
|
<li><a href="/register" class="btn btn-accent" style="padding: 0.5rem 1.25rem;">ابدأ مجاناً</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
@@ -627,16 +668,15 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<div class="container hero-grid">
|
<div class="container hero-grid">
|
||||||
<div class="hero-content">
|
<div class="hero-content">
|
||||||
<h1>نبيه: مستقبل خدمة العملاء والأتمتة الذكية</h1>
|
<h1>أتمتة خدمة العملاء والردود الذكية المتكاملة</h1>
|
||||||
<p>منصة الساس المتكاملة لربط قنوات واتساب وإدارة المحادثات تلقائياً بالاعتماد على الذكاء الاصطناعي. ابدأ فترتك التجريبية مجاناً اليوم وزد من مبيعات متجرك وفعالية الدعم الفني لديك بمعدل 5 أضعاف.</p>
|
<p>منصة نبيه تمنحك إمكانية ربط قنوات الاتصال والواتساب وتشغيل مساعد ذكي مدعوم بـ AI يقوم بقراءة الرسائل والصور والإجابة على العملاء فورياً لزيادة مبيعات متجرك وتفعيل أتمتة الدعم والعمليات بمعدل 5 أضعاف.</p>
|
||||||
<div class="hero-actions">
|
<div class="hero-actions">
|
||||||
<a href="/register" class="btn btn-primary">ابدأ مجاناً (14 يوم)</a>
|
<a href="/register" class="btn btn-accent">ابدأ تجربتك المجانية (14 يوم)</a>
|
||||||
<a href="#demo" class="btn btn-secondary">شاهد عرضاً حياً</a>
|
<a href="#demo" class="btn btn-secondary">جرب المحاكاة التفاعلية</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="hero-visual">
|
<div class="hero-visual">
|
||||||
<div class="mockup-wrapper">
|
<div class="mockup-wrapper">
|
||||||
<!-- Referencing the generated image served dynamically -->
|
|
||||||
<img src="/landing_mockup.php" alt="لوحة تحكم نبيه الذكية" class="mockup-img">
|
<img src="/landing_mockup.php" alt="لوحة تحكم نبيه الذكية" class="mockup-img">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -647,63 +687,33 @@
|
|||||||
<section class="features" id="features">
|
<section class="features" id="features">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="section-header">
|
<div class="section-header">
|
||||||
<h2>لماذا تختار منصة نبيه؟</h2>
|
<h2>لماذا تختار منصة نبيه لأعمالك؟</h2>
|
||||||
<p>نجمع لك أفضل تقنيات ربط قنوات الاتصال والردود الذكية لتوفر الوقت والجهد وتصنع تجربة عميل فائقة.</p>
|
<p>نجمع لك أفضل تقنيات المحادثة الذكية وأدوات التفاعل المتكاملة لتوفير الوقت وتحسين تجربة العميل.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="features-grid">
|
<div class="features-grid">
|
||||||
<div class="feature-card">
|
<div class="feature-card">
|
||||||
<div class="feature-icon">🤖</div>
|
<div class="feature-icon">🤖</div>
|
||||||
<h3>ذكاء اصطناعي تفاعلي (Gemini)</h3>
|
<h3>مساعد ذكي بالذكاء الاصطناعي</h3>
|
||||||
<p>مساعد ذكي يقرأ نية العميل ويجيب على الاستفسارات، كما يدعم قراءة المستندات والصور (OCR) للمطابقة التلقائية.</p>
|
<p>مساعد مخصص يفهم سياق الحديث، ويجيب على الاستفسارات المعقدة بلغات ولهجات مختلفة، ويقرأ الصور والملفات المرفقة (OCR).</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="feature-card">
|
<div class="feature-card">
|
||||||
<div class="feature-icon">⚡</div>
|
<div class="feature-icon">⚡</div>
|
||||||
<h3>محرك تدفق المحادثات (Flow Engine)</h3>
|
<h3>محرك المحادثات التفاعلية</h3>
|
||||||
<p>رسم سيناريوهات محادثة ديناميكية متعددة الخطوات لجمع البيانات، تسجيل السائقين، أو تتبع الشحنات بكل مرونة.</p>
|
<p>صياغة مسارات محادثات تفاعلية خطوة بخطوة للتحقق من أرقام الهواتف، تسجيل السائقين الجدد، أو أخذ بيانات الحجز بكل سلاسة.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="feature-card">
|
<div class="feature-card">
|
||||||
<div class="feature-icon">🛍️</div>
|
<div class="feature-icon">🛍️</div>
|
||||||
<h3>أتمتة التجارة الإلكترونية</h3>
|
<h3>تكامل المتاجر الإلكترونية</h3>
|
||||||
<p>إشعارات تلقائية فورية لتأكيد الطلب وشحنه، وإرسال تنبيهات استعادة السلات المتروكة لزيادة مبيعات متجرك.</p>
|
<p>الربط المباشر مع سلة (Salla) و WooCommerce لإرسال تحديثات حالة الطلب تلقائياً وتذكير العملاء بالسلات المتروكة.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="feature-card">
|
<div class="feature-card">
|
||||||
<div class="feature-icon">📢</div>
|
<div class="feature-icon">📢</div>
|
||||||
<h3>حملات البث الجماعي</h3>
|
<h3>حملات الرسائل الجماعية</h3>
|
||||||
<p>إرسال رسائل وحملات تسويقية جماعية للفئات المستهدفة مع تقارير وإحصائيات تفصيلية لمعدلات التسليم والاستهلاك.</p>
|
<p>أرسل عروضك وحملاتك التسويقية إلى قائمة عملائك بكبسة زر واحدة، مع متابعة فورية لمعدلات التسليم والقراءة.</p>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Coming Soon Section -->
|
|
||||||
<section class="roadmap" id="coming-soon">
|
|
||||||
<div class="container">
|
|
||||||
<div class="section-header">
|
|
||||||
<h2>رؤيتنا المستقبلية وقريباً بالمنصة</h2>
|
|
||||||
<p>نسعى لبناء نظام اتصالات موحد لكافة قنوات أعمالك. إليك الميزات والمنصات التي نعمل على إطلاقها حالياً:</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="roadmap-grid">
|
|
||||||
<div class="roadmap-card">
|
|
||||||
<span class="badge-soon">الربع الحالي</span>
|
|
||||||
<h3>بوتات تيليجرام (Telegram)</h3>
|
|
||||||
<p>ربط قنوات التليجرام والمجموعات بمحرك الرد والخطوات التفاعلية لخدمة العملاء على نطاق واسع.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="roadmap-card">
|
|
||||||
<span class="badge-soon">الربع الحالي</span>
|
|
||||||
<h3>ماسنجر وإنستغرام (Meta API)</h3>
|
|
||||||
<p>استقبال الردود والرسائل المباشرة (DMs) لصفحات الفيسبوك وحسابات الإنستغرام وإدارتها من لوحة واحدة وبشكل مؤتمت.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="roadmap-card">
|
|
||||||
<span class="badge-soon">قريباً جداً</span>
|
|
||||||
<h3>تكامل شوبيفاي المباشر (Shopify)</h3>
|
|
||||||
<p>إرسال ويب هوك تلقائي لحالات الطلب وتوفير ميزة البحث عن الشحنات لعملاء متاجر شوبيفاي عبر البوت.</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -713,26 +723,28 @@
|
|||||||
<section class="chat-demo" id="demo">
|
<section class="chat-demo" id="demo">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="section-header">
|
<div class="section-header">
|
||||||
<h2>جرّب البوت التفاعلي الآن</h2>
|
<h2>تفاعل مع محاكاة البوت الذكي</h2>
|
||||||
<p>تفاعل مع النموذج أدناه لترى كيف يقوم محرك المحادثة بالاستجابة لطلب العميل وحفظ حالته:</p>
|
<p>قم بكتابة أي رسالة للتعرف على سرعة ردود المساعد التلقائي ومحرك المحادثات التفاعلية:</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="chat-container">
|
<div class="chat-container">
|
||||||
<div class="chat-header">
|
<div class="chat-header">
|
||||||
<div class="chat-avatar">ن</div>
|
<div class="chat-header-user">
|
||||||
<div class="chat-header-info">
|
<div class="chat-avatar">ن</div>
|
||||||
<h4>مساعد نبيه الذكي</h4>
|
<div class="chat-header-info">
|
||||||
<span>🟢 متصل بالإنترنت</span>
|
<h4>مساعد نبيه الافتراضي</h4>
|
||||||
|
<span>🟢 متصل ومستعد للرد</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="chat-body" id="chat-box">
|
<div class="chat-body" id="chat-box">
|
||||||
<div class="msg msg-in">مرحباً بك! أنا مساعد منصة نبيه الذكي. كيف يمكنني خدمتك اليوم؟</div>
|
<div class="msg msg-in">أهلاً بك! أنا مساعد منصة نبيه المخصص لخدمتك. ما الذي يمكنني إرشادك إليه اليوم؟</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="chat-footer">
|
<div class="chat-footer">
|
||||||
<input type="text" id="chat-input" class="chat-input" placeholder="اكتب رسالتك هنا... (مثال: 'طلب ترقية الحساب' أو 'أسعار الباقات')" onkeypress="handleKeyPress(event)">
|
<input type="text" id="chat-input" class="chat-input" placeholder="مثال: 'كم سعر الباقة الفضية؟' أو 'أريد تجربة الخدمة'" onkeypress="handleKeyPress(event)">
|
||||||
<button class="btn btn-primary" style="padding: 0.5rem 1.25rem;" onclick="sendMessage()">إرسال</button>
|
<button class="btn btn-accent" style="padding: 0.5rem 1.25rem;" onclick="sendMessage()">إرسال</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -742,39 +754,110 @@
|
|||||||
<section class="pricing" id="pricing">
|
<section class="pricing" id="pricing">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="section-header">
|
<div class="section-header">
|
||||||
<h2>باقات تناسب نمو أعمالك</h2>
|
<h2>باقات اشتراك مرنة لكل مستويات الأعمال</h2>
|
||||||
<p>ابدأ بفترة تجريبية مجانية واختر الباقة الأنسب لاحقاً. لا نطلب بطاقة ائتمانية للتسجيل.</p>
|
<p>ابدأ بفترة تجريبية مجانية واستكشف كافة الميزات دون الحاجة لبطاقة ائتمان.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="pricing-grid">
|
<div class="pricing-grid">
|
||||||
<!-- Trial -->
|
<!-- Free Trial (Plan ID: 4) -->
|
||||||
<div class="price-card">
|
<div class="price-card">
|
||||||
<div>
|
<div>
|
||||||
<div class="price-name">باقة التجربة المجانية</div>
|
<div class="price-name">الفترة التجريبية</div>
|
||||||
|
<div class="price-desc">استكشف جميع ميزات المنصة مجاناً</div>
|
||||||
<div class="price-val">0 <span>د.أ / 14 يوم</span></div>
|
<div class="price-val">0 <span>د.أ / 14 يوم</span></div>
|
||||||
<ul class="price-features">
|
<ul class="price-features">
|
||||||
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> خط واتساب واحد نشط</li>
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> خط واتساب واحد نشط</li>
|
||||||
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 100 رسالة تجريبية</li>
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 5,000 رسالة تجريبية</li>
|
||||||
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> دعم بوت الرد التلقائي الأساسي</li>
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 100 رسالة صوتية مدمجة</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 100 عملية تحليل مستندات OCR</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> اختبار متكامل مع المتاجر</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a href="/register" class="btn btn-secondary">ابدأ الفترة التجريبية</a>
|
<a href="/register" class="btn btn-secondary">ابدأ التجربة مجاناً</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Silver (Featured) -->
|
<!-- Starter (Plan ID: 1) -->
|
||||||
|
<div class="price-card">
|
||||||
|
<div>
|
||||||
|
<div class="price-name">الباقة الأساسية</div>
|
||||||
|
<div class="price-desc">مثالية للمتاجر الصغيرة والناشئة</div>
|
||||||
|
<div class="price-val">19 <span>د.أ / شهرياً</span></div>
|
||||||
|
<ul class="price-features">
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> خط واتساب واحد نشط</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 1,000 رسالة / شهرياً</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> بوت رد تلقائي أساسي</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> إدارة الحملات التسويقية</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> تقارير وإحصائيات أساسية</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<a href="/register" class="btn btn-secondary">اشترك الآن</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Growth (Plan ID: 2 - Featured) -->
|
||||||
<div class="price-card featured">
|
<div class="price-card featured">
|
||||||
<div class="popular-tag">الأكثر طلباً</div>
|
<div class="popular-tag">الأكثر طلباً</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="price-name">الباقة الفضية (Silver)</div>
|
<div class="price-name">الباقة المتقدمة</div>
|
||||||
<div class="price-val">29 <span>د.أ / شهرياً</span></div>
|
<div class="price-desc">للشركات والمتاجر متوسطة الحجم</div>
|
||||||
|
<div class="price-val">49 <span>د.أ / شهرياً</span></div>
|
||||||
<ul class="price-features">
|
<ul class="price-features">
|
||||||
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> خطين واتساب متصلين</li>
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> خطين واتساب متصلين</li>
|
||||||
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 5,000 رسالة / شهرياً</li>
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 5,000 رسالة / شهرياً</li>
|
||||||
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> تكامل متكامل مع الذكاء الاصطناعي</li>
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 500 رسالة صوتية شهرياً</li>
|
||||||
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> ربط المتاجر الإلكترونية والسلات المتروكة</li>
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 500 عملية تحليل مستندات OCR</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> ربط متاجر سلة و WooCommerce</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> محادثات تفاعلية ومساعد ذكي AI</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a href="/register" class="btn btn-primary">اشترك الآن</a>
|
<a href="/register" class="btn btn-accent">اشترك الآن</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Professional (Plan ID: 3) -->
|
||||||
|
<div class="price-card">
|
||||||
|
<div>
|
||||||
|
<div class="price-name">باقة المحترفين</div>
|
||||||
|
<div class="price-desc">للشركات الكبرى والعمليات الواسعة</div>
|
||||||
|
<div class="price-val">99 <span>د.أ / شهرياً</span></div>
|
||||||
|
<ul class="price-features">
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 5 خطوط واتساب نشطة</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 15,000 رسالة / شهرياً</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 2,000 رسالة صوتية شهرياً</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> 2,000 عملية تحليل OCR</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> تكامل مع الويب هوك والربط الخارجي</li>
|
||||||
|
<li><svg viewBox="0 0 20 20"><path d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg> ذكاء اصطناعي تفاعلي وصوتي كامل</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<a href="/register" class="btn btn-secondary">اشترك الآن</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Coming Soon Section -->
|
||||||
|
<section class="roadmap" id="coming-soon">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-header">
|
||||||
|
<h2>رؤيتنا المستقبلية وقنوات الاتصال القادمة</h2>
|
||||||
|
<p>نعمل باستمرار على تمكينك من إدارة كافة تفاعلاتك مع العملاء من منصة واحدة وموحدة:</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="roadmap-grid">
|
||||||
|
<div class="roadmap-card">
|
||||||
|
<span class="badge-soon">الربع الحالي</span>
|
||||||
|
<h3>بوتات تيليجرام (Telegram)</h3>
|
||||||
|
<p>أتمتة المحادثات والرد التلقائي وإدارة مجموعات وقنوات التيليجرام بمساعد الذكاء الاصطناعي مباشرة.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="roadmap-card">
|
||||||
|
<span class="badge-soon">الربع الحالي</span>
|
||||||
|
<h3>ماسنجر وإنستغرام (Meta APIs)</h3>
|
||||||
|
<p>استقبال وإرسال الرسائل لصفحات الفيسبوك وحسابات الإنستغرام وإطلاق ردود ذكية ومسارات حجز تلقائية.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="roadmap-card">
|
||||||
|
<span class="badge-soon">قريباً جداً</span>
|
||||||
|
<h3>تكامل شوبيفاي المباشر (Shopify)</h3>
|
||||||
|
<p>تزامن فوري للمنتجات وحالة الطلب وتتبع الشحنات لعملاء متاجر شوبيفاي لتقليل تذاكر الدعم الفني.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -785,38 +868,32 @@
|
|||||||
<div class="container footer-grid">
|
<div class="container footer-grid">
|
||||||
<div class="footer-col">
|
<div class="footer-col">
|
||||||
<div class="footer-logo">
|
<div class="footer-logo">
|
||||||
<span style="font-weight: 800;">نبيه</span>
|
<span style="font-weight: 800; color: white;">نبيه</span>
|
||||||
</div>
|
</div>
|
||||||
<p style="line-height: 1.6; margin-bottom: 1.5rem;">منصة ساس متكاملة لتشغيل أتمتة الأعمال وخدمة العملاء الذكية عبر قنوات المراسلة الفورية.</p>
|
<p style="line-height: 1.6; margin-bottom: 1.5rem;">منصة المحادثة الفورية المتكاملة لربط أعمالك مع الذكاء الاصطناعي وأتمتة خدمة العملاء على مدار الساعة.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="footer-col">
|
<div class="footer-col">
|
||||||
<h5>روابط سريعة</h5>
|
<h5>روابط سريعة</h5>
|
||||||
<ul class="footer-links">
|
<ul class="footer-links">
|
||||||
<li><a href="#features">الميزات الأساسية</a></li>
|
<li><a href="#features">الميزات الأساسية</a></li>
|
||||||
<li><a href="#coming-soon">خطة العمل المستقبلية</a></li>
|
|
||||||
<li><a href="#pricing">باقات الاشتراك</a></li>
|
<li><a href="#pricing">باقات الاشتراك</a></li>
|
||||||
|
<li><a href="#demo">التجربة التفاعلية</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="footer-col">
|
<div class="footer-col">
|
||||||
<h5>الحساب</h5>
|
<h5>تواصل معنا</h5>
|
||||||
<ul class="footer-links">
|
<p style="line-height: 1.6;">البريد الإلكتروني: support@nabeh.app<br>عمان، الأردن</p>
|
||||||
<li><a href="/login">تسجيل الدخول</a></li>
|
|
||||||
<li><a href="/register">حساب جديد</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="copyright container">
|
<div class="copyright">
|
||||||
<p>© 2026 منصة نبيه (Nabeh). جميع الحقوق محفوظة.</p>
|
جميع الحقوق محفوظة لمنصة نبيه © 2026
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
const chatBox = document.getElementById('chat-box');
|
|
||||||
const chatInput = document.getElementById('chat-input');
|
|
||||||
|
|
||||||
function handleKeyPress(event) {
|
function handleKeyPress(event) {
|
||||||
if (event.key === 'Enter') {
|
if (event.key === 'Enter') {
|
||||||
sendMessage();
|
sendMessage();
|
||||||
@@ -824,33 +901,41 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function sendMessage() {
|
function sendMessage() {
|
||||||
const text = chatInput.value.trim();
|
const input = document.getElementById('chat-input');
|
||||||
if (!text) return;
|
const message = input.value.trim();
|
||||||
|
if (!message) return;
|
||||||
|
|
||||||
// Add user message
|
const chatBox = document.getElementById('chat-box');
|
||||||
addMessage(text, 'msg-out');
|
|
||||||
chatInput.value = '';
|
|
||||||
|
|
||||||
// Simulated response logic
|
// Append user message
|
||||||
setTimeout(() => {
|
const userMsgDiv = document.createElement('div');
|
||||||
let reply = 'شكراً لرسالتك! لطلب تفعيل الحساب أو الترقية، يرجى التسجيل وتوجه لتبويب "الباقات والاشتراكات" في حسابك.';
|
userMsgDiv.className = 'msg msg-out';
|
||||||
if (text.includes('سعر') || text.includes('باق') || text.includes('اسعار')) {
|
userMsgDiv.textContent = message;
|
||||||
reply = 'تبدأ باقاتنا من 0 د.أ للفترة التجريبية، ولدينا باقات مميزة كالباقة الفضية بقيمة 29 د.أ شهرياً تشمل ميزات الذكاء الاصطناعي وسيناريوهات التدفق التفاعلي.';
|
chatBox.appendChild(userMsgDiv);
|
||||||
} else if (text.includes('الذكاء') || text.includes('اصطناعي') || text.includes('gemini')) {
|
|
||||||
reply = 'نستخدم نموذج Gemini AI الذكي لقراءة الرسائل وفهم نية العميل، كما ندعم استخراج البيانات النصية من الصور (OCR) لتسجيل وتفعيل الاشتراكات.';
|
|
||||||
} else if (text.includes('شوبيفاي') || text.includes('shopify') || text.includes('متجر')) {
|
|
||||||
reply = 'أهلاً بك! ميزة الربط المباشر مع شوبيفاي وسلة المشتريات قيد التطوير وستنطلق قريباً جداً في الربع الحالي لأتمتة الرسائل التنبيهية.';
|
|
||||||
}
|
|
||||||
addMessage(reply, 'msg-in');
|
|
||||||
}, 800);
|
|
||||||
}
|
|
||||||
|
|
||||||
function addMessage(text, className) {
|
input.value = '';
|
||||||
const msgDiv = document.createElement('div');
|
|
||||||
msgDiv.className = `msg ${className}`;
|
|
||||||
msgDiv.innerText = text;
|
|
||||||
chatBox.appendChild(msgDiv);
|
|
||||||
chatBox.scrollTop = chatBox.scrollHeight;
|
chatBox.scrollTop = chatBox.scrollHeight;
|
||||||
|
|
||||||
|
// Generate reply based on keywords
|
||||||
|
setTimeout(() => {
|
||||||
|
const replyDiv = document.createElement('div');
|
||||||
|
replyDiv.className = 'msg msg-in';
|
||||||
|
|
||||||
|
let reply = 'أهلاً بك! لقد استلمت رسالتك بنجاح. مساعد نبيه الذكي قيد التشغيل وسيقوم بالتواصل معك بكافة التفاصيل.';
|
||||||
|
const msgLower = message.toLowerCase();
|
||||||
|
|
||||||
|
if (msgLower.includes('سعر') || msgLower.includes('باق') || msgLower.includes('أسعار') || msgLower.includes('بكم')) {
|
||||||
|
reply = 'منصة نبيه توفر 4 باقات:\n1. الباقة التجريبية: مجاناً لـ 14 يوماً.\n2. الباقة الأساسية: 19 د.أ / شهرياً.\n3. الباقة المتقدمة: 49 د.أ / شهرياً.\n4. باقة المحترفين: 99 د.أ / شهرياً.';
|
||||||
|
} else if (msgLower.includes('تجرب') || msgLower.includes('مجانا') || msgLower.includes('trial')) {
|
||||||
|
reply = 'يمكنك بدء التجربة المجانية لمدة 14 يوماً فوراً دون الحاجة لبطاقة ائتمان من خلال الضغط على زر "ابدأ مجاناً" أعلى الصفحة.';
|
||||||
|
} else if (msgLower.includes('سلة') || msgLower.includes('woocommerce') || msgLower.includes('متجر')) {
|
||||||
|
reply = 'نعم! تدعم باقاتنا المتقدمة والاحترافية التكامل الفوري والمباشر مع متاجر سلة و WooCommerce لمتابعة الطلبات وتذكير السلات المتروكة.';
|
||||||
|
}
|
||||||
|
|
||||||
|
replyDiv.innerText = reply;
|
||||||
|
chatBox.appendChild(replyDiv);
|
||||||
|
chatBox.scrollTop = chatBox.scrollHeight;
|
||||||
|
}, 800);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<?php
|
<?php
|
||||||
header('Content-Type: image/png');
|
header('Content-Type: image/png');
|
||||||
readfile('/Users/hamzaaleghwairyeen/.gemini/antigravity-ide/brain/ded33709-0084-4a6b-881c-786000c9ec5a/nabeh_landing_mockup_1779496984022.png');
|
readfile('/Users/hamzaaleghwairyeen/.gemini/antigravity-ide/brain/02dd4532-05ee-439e-aa7b-3a6871c36063/nabeh_dashboard_mockup_1779822572824.png');
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<application
|
<application
|
||||||
android:label="nabeh"
|
android:label="nabeh"
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:icon="@mipmap/ic_launcher">
|
android:icon="@mipmap/launcher_icon">
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
|
|||||||
BIN
mobile/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
mobile/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
mobile/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
mobile/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
mobile/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
3
mobile/devtools_options.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
description: This file stores settings for Dart & Flutter DevTools.
|
||||||
|
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
|
||||||
|
extensions:
|
||||||
@@ -5,11 +5,14 @@ PODS:
|
|||||||
- path_provider_foundation (0.0.1):
|
- path_provider_foundation (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
|
- url_launcher_ios (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- Flutter (from `Flutter`)
|
- Flutter (from `Flutter`)
|
||||||
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
||||||
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
||||||
|
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
Flutter:
|
Flutter:
|
||||||
@@ -18,11 +21,14 @@ EXTERNAL SOURCES:
|
|||||||
:path: ".symlinks/plugins/flutter_secure_storage/ios"
|
:path: ".symlinks/plugins/flutter_secure_storage/ios"
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
:path: ".symlinks/plugins/path_provider_foundation/darwin"
|
:path: ".symlinks/plugins/path_provider_foundation/darwin"
|
||||||
|
url_launcher_ios:
|
||||||
|
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
|
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
|
||||||
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
|
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
|
||||||
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||||
|
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
|
||||||
|
|
||||||
PODFILE CHECKSUM: 912e34f102da91123e38965ab4e5b3fb21e195f0
|
PODFILE CHECKSUM: 912e34f102da91123e38965ab4e5b3fb21e195f0
|
||||||
|
|
||||||
|
|||||||
@@ -155,7 +155,6 @@
|
|||||||
5F67C1A9F2BBE935C19BC982 /* Pods-RunnerTests.release.xcconfig */,
|
5F67C1A9F2BBE935C19BC982 /* Pods-RunnerTests.release.xcconfig */,
|
||||||
4D196AD247F4CB184C87F520 /* Pods-RunnerTests.profile.xcconfig */,
|
4D196AD247F4CB184C87F520 /* Pods-RunnerTests.profile.xcconfig */,
|
||||||
);
|
);
|
||||||
name = Pods;
|
|
||||||
path = Pods;
|
path = Pods;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
@@ -418,9 +417,10 @@
|
|||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
249021D3217E4FDB00AE95B9 /* Profile */ = {
|
249021D3217E4FDB00AE95B9 /* Profile */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 79E5A6F3F41074AD93D3FE67 /* Pods-Runner.profile.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
@@ -542,9 +542,10 @@
|
|||||||
};
|
};
|
||||||
97C147031CF9000F007C117D /* Debug */ = {
|
97C147031CF9000F007C117D /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 0D7BC64BC15C3D1622EAE826 /* Pods-Runner.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
@@ -599,9 +600,10 @@
|
|||||||
};
|
};
|
||||||
97C147041CF9000F007C117D /* Release */ = {
|
97C147041CF9000F007C117D /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 9DB9D60ABA54EABFC41D4762 /* Pods-Runner.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 870 KiB |
|
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 940 B |
|
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 704 B After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 762 B After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 32 KiB |
BIN
mobile/logo.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
@@ -5,11 +5,14 @@ PODS:
|
|||||||
- path_provider_foundation (0.0.1):
|
- path_provider_foundation (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
|
- url_launcher_macos (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
|
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
|
||||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||||
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
|
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
|
||||||
|
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
flutter_secure_storage_macos:
|
flutter_secure_storage_macos:
|
||||||
@@ -18,11 +21,14 @@ EXTERNAL SOURCES:
|
|||||||
:path: Flutter/ephemeral
|
:path: Flutter/ephemeral
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
|
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
|
||||||
|
url_launcher_macos:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
flutter_secure_storage_macos: 7f45e30f838cf2659862a4e4e3ee1c347c2b3b54
|
flutter_secure_storage_macos: 7f45e30f838cf2659862a4e4e3ee1c347c2b3b54
|
||||||
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
||||||
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||||
|
url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673
|
||||||
|
|
||||||
PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009
|
PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
# Generated by pub
|
# Generated by pub
|
||||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||||
packages:
|
packages:
|
||||||
|
archive:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: archive
|
||||||
|
sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.0.9"
|
||||||
|
args:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: args
|
||||||
|
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.7.0"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -29,10 +45,26 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: characters
|
name: characters
|
||||||
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
|
sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.4.1"
|
||||||
|
checked_yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: checked_yaml
|
||||||
|
sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.4"
|
||||||
|
cli_util:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: cli_util
|
||||||
|
sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.4.2"
|
||||||
clock:
|
clock:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -86,6 +118,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "8.1.6"
|
version: "8.1.6"
|
||||||
|
flutter_launcher_icons:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: flutter_launcher_icons
|
||||||
|
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.13.1"
|
||||||
flutter_lints:
|
flutter_lints:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -168,6 +208,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.1.2"
|
version: "4.1.2"
|
||||||
|
image:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: image
|
||||||
|
sha256: f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.8.0"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -176,30 +224,38 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.7"
|
version: "0.6.7"
|
||||||
|
json_annotation:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: json_annotation
|
||||||
|
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.9.0"
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.9"
|
version: "11.0.2"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.9"
|
version: "3.0.10"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_testing
|
name: leak_tracker_testing
|
||||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
lints:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -212,26 +268,26 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
|
sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.17"
|
version: "0.12.18"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.11.1"
|
version: "0.13.0"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
|
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.16.0"
|
version: "1.17.0"
|
||||||
nested:
|
nested:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -296,6 +352,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "2.3.0"
|
||||||
|
petitparser:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: petitparser
|
||||||
|
sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "7.0.2"
|
||||||
platform:
|
platform:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -312,6 +376,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.8"
|
version: "2.1.8"
|
||||||
|
posix:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: posix
|
||||||
|
sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.5.0"
|
||||||
provider:
|
provider:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -369,10 +441,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.4"
|
version: "0.7.9"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -449,10 +521,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vector_math
|
name: vector_math
|
||||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.2.0"
|
||||||
vm_service:
|
vm_service:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -485,6 +557,22 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
|
xml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: xml
|
||||||
|
sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.6.1"
|
||||||
|
yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: yaml
|
||||||
|
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.8.0 <4.0.0"
|
dart: ">=3.9.0-0 <4.0.0"
|
||||||
flutter: ">=3.32.0"
|
flutter: ">=3.32.0"
|
||||||
|
|||||||
@@ -24,6 +24,12 @@ dev_dependencies:
|
|||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
flutter_lints: ^3.0.0
|
flutter_lints: ^3.0.0
|
||||||
|
flutter_launcher_icons: ^0.13.1
|
||||||
|
|
||||||
|
flutter_launcher_icons:
|
||||||
|
android: "launcher_icon"
|
||||||
|
ios: true
|
||||||
|
image_path: "logo.png"
|
||||||
|
|
||||||
flutter:
|
flutter:
|
||||||
uses-material-design: true
|
uses-material-design: true
|
||||||
|
|||||||