first commit
هذا الالتزام موجود في:
17
Dockerfile
Normal file
17
Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
||||
# Use official nginx alpine image
|
||||
FROM nginx:alpine
|
||||
|
||||
# Create directory for nginx config
|
||||
RUN mkdir -p /etc/nginx/conf.d
|
||||
|
||||
# Copy static files
|
||||
COPY index.html styles.css /usr/share/nginx/html/
|
||||
|
||||
# Copy nginx configuration
|
||||
COPY nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
# Expose port 80
|
||||
EXPOSE 80
|
||||
|
||||
# Run nginx
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
47
index.html
Normal file
47
index.html
Normal file
@@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ar" dir="rtl">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>DrivePlatform - Smart File Search</title>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="logo">DrivePlatform</div>
|
||||
<nav>
|
||||
<a href="#features">المميزات</a>
|
||||
<a href="#about">حول</a>
|
||||
<a href="#contact">اتصل بنا</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<section class="hero">
|
||||
<h1>منصة درايف للطلاب السعوديين</h1>
|
||||
<p>ساعد DrivePlatform الطلاب في العثور على المحاضرات والملاحظات والواجبات بسرعة من خلال فهم محتوى الملفات - وليس فقط أسمائها.</p>
|
||||
<button class="cta-button">جربها مجاناً</button>
|
||||
</section>
|
||||
|
||||
<section id="features" class="features">
|
||||
<h2>مصممة خصيصاً للطلاب السعوديين</h2>
|
||||
<div class="feature-grid">
|
||||
<div class="feature-card">
|
||||
<h3>بحث ذكي</h3>
|
||||
<p>ابحث عن الملاحظات حسب الموضوع - ابحث عن "تركيب الخلية" للعثور على شرائح المحاضرات والقراءات ذات الصلة.</p>
|
||||
</div>
|
||||
<div class="feature-card">
|
||||
<h3>تنظيم تلقائي</h3>
|
||||
<p>يتم فرز الملفات تلقائيًا حسب المقرر الدراسي والموضوع، مما يوفر لك ساعات من التنظيم اليدوي.</p>
|
||||
</div>
|
||||
<div class="feature-card">
|
||||
<h3>متكامل مع نظام التعليم</h3>
|
||||
<p>تم تصميمه ليناسب نظام التعليم السعودي مع دعم خاص للمقررات الجامعية الشائعة.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>© 2025 DrivePlatform. All rights reserved.</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
29
nginx/conf.d/default.conf
Normal file
29
nginx/conf.d/default.conf
Normal file
@@ -0,0 +1,29 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
|
||||
location / {
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
}
|
||||
|
||||
# Enable gzip compression
|
||||
gzip on;
|
||||
gzip_types text/css application/javascript;
|
||||
|
||||
# Cache control for static assets
|
||||
location ~* \.(css|js)$ {
|
||||
expires 1y;
|
||||
add_header Cache-Control "public, no-transform";
|
||||
}
|
||||
|
||||
# Don't cache HTML files
|
||||
location ~* \.html$ {
|
||||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||||
}
|
||||
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root /usr/share/nginx/html;
|
||||
}
|
||||
}
|
||||
160
styles.css
Normal file
160
styles.css
Normal file
@@ -0,0 +1,160 @@
|
||||
:root {
|
||||
--primary-color: #4285f4;
|
||||
--secondary-color: #34a853;
|
||||
--accent-color: #ea4335;
|
||||
--text-color: #333;
|
||||
--light-bg: #f8f9fa;
|
||||
--dark-bg: #202124;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', Roboto, 'Tahoma', 'Arial', sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: var(--text-color);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 1rem 2rem;
|
||||
background-color: white;
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
nav a {
|
||||
margin-left: 1.5rem;
|
||||
text-decoration: none;
|
||||
color: var(--text-color);
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
nav a:hover {
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.hero {
|
||||
text-align: center;
|
||||
padding: 5rem 2rem;
|
||||
background: linear-gradient(135deg, var(--light-bg) 0%, white 100%);
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size: 2.5rem;
|
||||
margin-bottom: 1rem;
|
||||
color: var(--dark-bg);
|
||||
}
|
||||
|
||||
.hero p {
|
||||
max-width: 600px;
|
||||
margin: 0 auto 2rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.cta-button {
|
||||
background-color: var(--primary-color);
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 0.8rem 2rem;
|
||||
font-size: 1rem;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s, transform 0.2s;
|
||||
font-family: 'Segoe UI', Roboto, 'Tahoma', 'Arial', sans-serif;
|
||||
}
|
||||
|
||||
[dir="rtl"] nav a {
|
||||
margin-left: 0;
|
||||
margin-right: 1.5rem;
|
||||
}
|
||||
|
||||
[dir="rtl"] .feature-card {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
[dir="rtl"] .hero {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
[dir="rtl"] .features h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cta-button:hover {
|
||||
background-color: #3367d6;
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.features {
|
||||
padding: 4rem 2rem;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.features h2 {
|
||||
text-align: center;
|
||||
margin-bottom: 3rem;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.feature-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.feature-card {
|
||||
background: white;
|
||||
padding: 2rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
|
||||
transition: transform 0.3s, box-shadow 0.3s;
|
||||
}
|
||||
|
||||
.feature-card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 10px 20px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.feature-card h3 {
|
||||
color: var(--primary-color);
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
background-color: var(--light-bg);
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
header {
|
||||
flex-direction: column;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
nav {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
nav a {
|
||||
margin: 0 0.5rem;
|
||||
}
|
||||
|
||||
.hero {
|
||||
padding: 3rem 1rem;
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
المرجع في مشكلة جديدة
حظر مستخدم