commit bf22a0aeb6c4bca3d19774229f8704b855f7431a Author: Mino484 Date: Wed Oct 15 17:22:06 2025 +0300 first commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..02b4542 --- /dev/null +++ b/Dockerfile @@ -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;"] diff --git a/index.html b/index.html new file mode 100644 index 0000000..b85fc46 --- /dev/null +++ b/index.html @@ -0,0 +1,47 @@ + + + + + + DrivePlatform - Smart File Search + + + +
+ + +
+ +
+

منصة درايف للطلاب السعوديين

+

ساعد DrivePlatform الطلاب في العثور على المحاضرات والملاحظات والواجبات بسرعة من خلال فهم محتوى الملفات - وليس فقط أسمائها.

+ +
+ +
+

مصممة خصيصاً للطلاب السعوديين

+
+
+

بحث ذكي

+

ابحث عن الملاحظات حسب الموضوع - ابحث عن "تركيب الخلية" للعثور على شرائح المحاضرات والقراءات ذات الصلة.

+
+
+

تنظيم تلقائي

+

يتم فرز الملفات تلقائيًا حسب المقرر الدراسي والموضوع، مما يوفر لك ساعات من التنظيم اليدوي.

+
+
+

متكامل مع نظام التعليم

+

تم تصميمه ليناسب نظام التعليم السعودي مع دعم خاص للمقررات الجامعية الشائعة.

+
+
+
+ + + + diff --git a/nginx/conf.d/default.conf b/nginx/conf.d/default.conf new file mode 100644 index 0000000..3c2526c --- /dev/null +++ b/nginx/conf.d/default.conf @@ -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; + } +} diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..5678d12 --- /dev/null +++ b/styles.css @@ -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; + } +}