Commit ·
b6d6be5
1
Parent(s): 55bfca2
Add privacy policy and terms of service pages for Google OAuth verification
Browse files- views/index.ejs +123 -22
views/index.ejs
CHANGED
|
@@ -3,7 +3,8 @@
|
|
| 3 |
|
| 4 |
<head>
|
| 5 |
<meta charset="UTF-8">
|
| 6 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
| 7 |
<meta name="description" content="Ibrahim Al-Asfar Portfolio API - Full-stack web developer portfolio backend API">
|
| 8 |
<meta name="keywords" content="portfolio, API, Node.js, Express, MongoDB, developer, OAuth, JWT">
|
| 9 |
<meta name="author" content="Ibrahim Al-Asfar">
|
|
@@ -550,6 +551,85 @@
|
|
| 550 |
.toast.info {
|
| 551 |
border-left: 4px solid #3b82f6;
|
| 552 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 553 |
</style>
|
| 554 |
|
| 555 |
<!-- Structured Data / Schema.org -->
|
|
@@ -652,27 +732,21 @@
|
|
| 652 |
<!-- Navigation -->
|
| 653 |
<nav class="bg-white/90 backdrop-blur-md shadow-lg sticky top-0 z-50">
|
| 654 |
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 655 |
-
<div class="flex justify-between items-center h-16">
|
| 656 |
<div class="flex items-center space-x-3">
|
| 657 |
-
<
|
| 658 |
-
<
|
| 659 |
-
onerror="this.onerror=null; this.parentElement.innerHTML='<div class=\'gradient-bg rounded-lg p-2\'><i class=\'fas fa-code text-white text-xl\'></i></div>'">
|
| 660 |
-
<h1 class="text-xl font-bold gradient-text">
|
| 661 |
-
Ibrahim Al-Asfar Portfolio
|
| 662 |
-
</h1>
|
| 663 |
</div>
|
| 664 |
-
<div class="flex items-center space-x-
|
| 665 |
-
<a href="/api-docs"
|
| 666 |
-
|
| 667 |
-
<i class="fas fa-book text-lg"></i>
|
| 668 |
</a>
|
| 669 |
-
<a href="https://github.com/Mark-Lasfar"
|
| 670 |
-
class="text-
|
| 671 |
-
<i class="fab fa-github text-lg"></i>
|
| 672 |
</a>
|
| 673 |
-
<a href="https://linkedin.com/in/ibrahim-elasfar"
|
| 674 |
-
class="text-gray-600 hover:text-purple-600 transition
|
| 675 |
-
<i class="fab fa-linkedin text-lg"></i>
|
| 676 |
</a>
|
| 677 |
</div>
|
| 678 |
</div>
|
|
@@ -955,13 +1029,40 @@
|
|
| 955 |
</div>
|
| 956 |
|
| 957 |
<!-- Footer -->
|
| 958 |
-
<footer class="bg-gray-800 text-white py-8">
|
| 959 |
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
|
| 960 |
-
<p class="text-gray-400">© 2026 Ibrahim Al-Asfar. All rights reserved.</p>
|
| 961 |
-
<p class="text-gray-500 text-
|
| 962 |
-
<p class="text-gray-600 text-xs mt-
|
| 963 |
<i class="fas fa-code mr-1"></i> API Version 1.0.0
|
| 964 |
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 965 |
</div>
|
| 966 |
</footer>
|
| 967 |
|
|
|
|
| 3 |
|
| 4 |
<head>
|
| 5 |
<meta charset="UTF-8">
|
| 6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes">
|
| 7 |
+
|
| 8 |
<meta name="description" content="Ibrahim Al-Asfar Portfolio API - Full-stack web developer portfolio backend API">
|
| 9 |
<meta name="keywords" content="portfolio, API, Node.js, Express, MongoDB, developer, OAuth, JWT">
|
| 10 |
<meta name="author" content="Ibrahim Al-Asfar">
|
|
|
|
| 551 |
.toast.info {
|
| 552 |
border-left: 4px solid #3b82f6;
|
| 553 |
}
|
| 554 |
+
|
| 555 |
+
|
| 556 |
+
/* تحسينات للموبايل */
|
| 557 |
+
@media (max-width: 640px) {
|
| 558 |
+
|
| 559 |
+
/* تقليل padding في الأقسام */
|
| 560 |
+
.py-20 {
|
| 561 |
+
padding-top: 3rem;
|
| 562 |
+
padding-bottom: 3rem;
|
| 563 |
+
}
|
| 564 |
+
|
| 565 |
+
.py-16 {
|
| 566 |
+
padding-top: 2rem;
|
| 567 |
+
padding-bottom: 2rem;
|
| 568 |
+
}
|
| 569 |
+
|
| 570 |
+
/* جعل النص أصغر */
|
| 571 |
+
.text-5xl {
|
| 572 |
+
font-size: 2rem;
|
| 573 |
+
}
|
| 574 |
+
|
| 575 |
+
.text-3xl {
|
| 576 |
+
font-size: 1.5rem;
|
| 577 |
+
}
|
| 578 |
+
|
| 579 |
+
.text-xl {
|
| 580 |
+
font-size: 1rem;
|
| 581 |
+
}
|
| 582 |
+
|
| 583 |
+
/* تحسين الشبكة */
|
| 584 |
+
.grid {
|
| 585 |
+
gap: 1rem;
|
| 586 |
+
}
|
| 587 |
+
|
| 588 |
+
/* تحسين البطاقات */
|
| 589 |
+
.card-hover {
|
| 590 |
+
margin-bottom: 0.5rem;
|
| 591 |
+
}
|
| 592 |
+
|
| 593 |
+
/* تحسين الهيدر */
|
| 594 |
+
.h-16 {
|
| 595 |
+
height: auto;
|
| 596 |
+
padding: 0.5rem 0;
|
| 597 |
+
}
|
| 598 |
+
|
| 599 |
+
.flex {
|
| 600 |
+
flex-wrap: wrap;
|
| 601 |
+
}
|
| 602 |
+
|
| 603 |
+
/* جعل الأزرار full width */
|
| 604 |
+
.btn-hover,
|
| 605 |
+
.gradient-bg {
|
| 606 |
+
width: 100%;
|
| 607 |
+
text-align: center;
|
| 608 |
+
justify-content: center;
|
| 609 |
+
}
|
| 610 |
+
|
| 611 |
+
/* تحسين OAuth buttons */
|
| 612 |
+
.grid-cols-1.md\:grid-cols-2.lg\:grid-cols-4 {
|
| 613 |
+
grid-template-columns: repeat(2, 1fr);
|
| 614 |
+
}
|
| 615 |
+
}
|
| 616 |
+
|
| 617 |
+
@media (max-width: 480px) {
|
| 618 |
+
|
| 619 |
+
/* للشاشات الصغيرة جداً */
|
| 620 |
+
.grid-cols-1.md\:grid-cols-2.lg\:grid-cols-4 {
|
| 621 |
+
grid-template-columns: 1fr;
|
| 622 |
+
}
|
| 623 |
+
|
| 624 |
+
.flex.flex-wrap.justify-center.gap-8 {
|
| 625 |
+
gap: 1rem;
|
| 626 |
+
}
|
| 627 |
+
|
| 628 |
+
.logo-img {
|
| 629 |
+
width: 30px;
|
| 630 |
+
height: 30px;
|
| 631 |
+
}
|
| 632 |
+
}
|
| 633 |
</style>
|
| 634 |
|
| 635 |
<!-- Structured Data / Schema.org -->
|
|
|
|
| 732 |
<!-- Navigation -->
|
| 733 |
<nav class="bg-white/90 backdrop-blur-md shadow-lg sticky top-0 z-50">
|
| 734 |
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 735 |
+
<div class="flex flex-wrap justify-between items-center py-2 md:py-0 md:h-16">
|
| 736 |
<div class="flex items-center space-x-3">
|
| 737 |
+
<img src="/images/logo.png" alt="Logo" class="logo-img">
|
| 738 |
+
<h1 class="text-lg md:text-xl font-bold gradient-text">Portfolio API</h1>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 739 |
</div>
|
| 740 |
+
<div class="flex items-center space-x-3 mt-2 md:mt-0">
|
| 741 |
+
<a href="/api-docs" class="text-gray-600 hover:text-purple-600 transition p-2">
|
| 742 |
+
<i class="fas fa-book text-base md:text-lg"></i>
|
|
|
|
| 743 |
</a>
|
| 744 |
+
<a href="https://github.com/Mark-Lasfar" class="text-gray-600 hover:text-purple-600 transition p-2">
|
| 745 |
+
<i class="fab fa-github text-base md:text-lg"></i>
|
|
|
|
| 746 |
</a>
|
| 747 |
+
<a href="https://linkedin.com/in/ibrahim-elasfar"
|
| 748 |
+
class="text-gray-600 hover:text-purple-600 transition p-2">
|
| 749 |
+
<i class="fab fa-linkedin text-base md:text-lg"></i>
|
| 750 |
</a>
|
| 751 |
</div>
|
| 752 |
</div>
|
|
|
|
| 1029 |
</div>
|
| 1030 |
|
| 1031 |
<!-- Footer -->
|
| 1032 |
+
<footer class="bg-gray-800 text-white py-8 mt-8">
|
| 1033 |
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
|
| 1034 |
+
<p class="text-gray-400 text-sm">© 2026 Ibrahim Al-Asfar. All rights reserved.</p>
|
| 1035 |
+
<p class="text-gray-500 text-xs mt-2">Built with ❤️ using Node.js, Express, MongoDB & TailwindCSS</p>
|
| 1036 |
+
<p class="text-gray-600 text-xs mt-3">
|
| 1037 |
<i class="fas fa-code mr-1"></i> API Version 1.0.0
|
| 1038 |
</p>
|
| 1039 |
+
|
| 1040 |
+
<!-- ✅ روابط قانونية -->
|
| 1041 |
+
<div class="flex flex-wrap justify-center gap-3 mt-4">
|
| 1042 |
+
<a href="/privacy" class="text-gray-500 hover:text-purple-400 text-xs transition">Privacy Policy</a>
|
| 1043 |
+
<span class="text-gray-600 text-xs">•</span>
|
| 1044 |
+
<a href="/terms" class="text-gray-500 hover:text-purple-400 text-xs transition">Terms of Service</a>
|
| 1045 |
+
<span class="text-gray-600 text-xs">•</span>
|
| 1046 |
+
<a href="/sitemap.xml" class="text-gray-500 hover:text-purple-400 text-xs transition">Sitemap</a>
|
| 1047 |
+
<span class="text-gray-600 text-xs">•</span>
|
| 1048 |
+
<a href="/api-docs" class="text-gray-500 hover:text-purple-400 text-xs transition">API Docs</a>
|
| 1049 |
+
</div>
|
| 1050 |
+
|
| 1051 |
+
<!-- ✅ روابط Social Media -->
|
| 1052 |
+
<div class="flex justify-center gap-4 mt-4">
|
| 1053 |
+
<a href="https://github.com/Mark-Lasfar" target="_blank"
|
| 1054 |
+
class="text-gray-500 hover:text-white transition">
|
| 1055 |
+
<i class="fab fa-github text-lg"></i>
|
| 1056 |
+
</a>
|
| 1057 |
+
<a href="https://linkedin.com/in/ibrahim-elasfar" target="_blank"
|
| 1058 |
+
class="text-gray-500 hover:text-white transition">
|
| 1059 |
+
<i class="fab fa-linkedin text-lg"></i>
|
| 1060 |
+
</a>
|
| 1061 |
+
<a href="https://twitter.com/MarkLasfar" target="_blank"
|
| 1062 |
+
class="text-gray-500 hover:text-white transition">
|
| 1063 |
+
<i class="fab fa-twitter text-lg"></i>
|
| 1064 |
+
</a>
|
| 1065 |
+
</div>
|
| 1066 |
</div>
|
| 1067 |
</footer>
|
| 1068 |
|