Commit ·
d2b02c4
1
Parent(s): b6d6be5
Add privacy policy and terms of service pages for Google OAuth verification.
Browse files- views/privacy.ejs +79 -0
- views/terms.ejs +77 -0
views/privacy.ejs
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>Privacy Policy - Portfolio API</title>
|
| 7 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 8 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
|
| 9 |
+
<link rel="icon" type="image/png" href="/images/logo.png">
|
| 10 |
+
<style>
|
| 11 |
+
.gradient-bg { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
|
| 12 |
+
.card-hover { transition: all 0.3s ease; }
|
| 13 |
+
.card-hover:hover { transform: translateY(-5px); box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1); }
|
| 14 |
+
</style>
|
| 15 |
+
</head>
|
| 16 |
+
<body class="bg-gray-50">
|
| 17 |
+
<nav class="bg-white shadow-lg sticky top-0 z-50">
|
| 18 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 19 |
+
<div class="flex justify-between items-center h-16">
|
| 20 |
+
<div class="flex items-center space-x-3">
|
| 21 |
+
<img src="/images/logo.png" alt="Logo" class="w-10 h-10 rounded-lg">
|
| 22 |
+
<h1 class="text-xl font-bold gradient-bg bg-clip-text text-transparent">Portfolio API</h1>
|
| 23 |
+
</div>
|
| 24 |
+
<div class="flex items-center space-x-4">
|
| 25 |
+
<a href="/" class="text-gray-600 hover:text-purple-600 transition">Home</a>
|
| 26 |
+
<a href="/api-docs" class="text-gray-600 hover:text-purple-600 transition">API Docs</a>
|
| 27 |
+
</div>
|
| 28 |
+
</div>
|
| 29 |
+
</div>
|
| 30 |
+
</nav>
|
| 31 |
+
|
| 32 |
+
<div class="max-w-4xl mx-auto px-4 py-16">
|
| 33 |
+
<div class="bg-white rounded-xl shadow-lg p-8 card-hover">
|
| 34 |
+
<h1 class="text-3xl font-bold text-gray-800 mb-6">Privacy Policy</h1>
|
| 35 |
+
<p class="text-gray-500 mb-4">Last updated: April 2, 2026</p>
|
| 36 |
+
|
| 37 |
+
<div class="space-y-6 text-gray-600">
|
| 38 |
+
<section>
|
| 39 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">1. Information We Collect</h2>
|
| 40 |
+
<p>We collect information you provide directly to us, such as when you create an account, update your profile, or use our API services. This may include:</p>
|
| 41 |
+
<ul class="list-disc list-inside mt-2 ml-4">
|
| 42 |
+
<li>Name and email address</li>
|
| 43 |
+
<li>Profile information (avatar, bio, skills)</li>
|
| 44 |
+
<li>Project data you submit</li>
|
| 45 |
+
<li>OAuth credentials from Google, Facebook, or GitHub</li>
|
| 46 |
+
</ul>
|
| 47 |
+
</section>
|
| 48 |
+
|
| 49 |
+
<section>
|
| 50 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">2. How We Use Your Information</h2>
|
| 51 |
+
<p>We use the information we collect to:</p>
|
| 52 |
+
<ul class="list-disc list-inside mt-2 ml-4">
|
| 53 |
+
<li>Provide, maintain, and improve our API services</li>
|
| 54 |
+
<li>Authenticate your identity and manage your account</li>
|
| 55 |
+
<li>Respond to your comments and questions</li>
|
| 56 |
+
<li>Send you technical notices and support messages</li>
|
| 57 |
+
</ul>
|
| 58 |
+
</section>
|
| 59 |
+
|
| 60 |
+
<section>
|
| 61 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">3. Data Security</h2>
|
| 62 |
+
<p>We implement appropriate technical and organizational measures to protect your personal information against unauthorized access, alteration, disclosure, or destruction.</p>
|
| 63 |
+
</section>
|
| 64 |
+
|
| 65 |
+
<section>
|
| 66 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">4. Contact Us</h2>
|
| 67 |
+
<p>If you have any questions about this Privacy Policy, please contact us at: <a href="mailto:marklasfar@gmail.com" class="text-purple-600 hover:underline">marklasfar@gmail.com</a></p>
|
| 68 |
+
</section>
|
| 69 |
+
</div>
|
| 70 |
+
</div>
|
| 71 |
+
</div>
|
| 72 |
+
|
| 73 |
+
<footer class="bg-gray-800 text-white py-6 mt-8">
|
| 74 |
+
<div class="text-center text-gray-400 text-sm">
|
| 75 |
+
<p>© 2026 Ibrahim Al-Asfar. All rights reserved.</p>
|
| 76 |
+
</div>
|
| 77 |
+
</footer>
|
| 78 |
+
</body>
|
| 79 |
+
</html>
|
views/terms.ejs
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>Terms of Service - Portfolio API</title>
|
| 7 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 8 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
|
| 9 |
+
<link rel="icon" type="image/png" href="/images/logo.png">
|
| 10 |
+
<style>
|
| 11 |
+
.gradient-bg { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
|
| 12 |
+
.card-hover { transition: all 0.3s ease; }
|
| 13 |
+
.card-hover:hover { transform: translateY(-5px); box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1); }
|
| 14 |
+
</style>
|
| 15 |
+
</head>
|
| 16 |
+
<body class="bg-gray-50">
|
| 17 |
+
<nav class="bg-white shadow-lg sticky top-0 z-50">
|
| 18 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 19 |
+
<div class="flex justify-between items-center h-16">
|
| 20 |
+
<div class="flex items-center space-x-3">
|
| 21 |
+
<img src="/images/logo.png" alt="Logo" class="w-10 h-10 rounded-lg">
|
| 22 |
+
<h1 class="text-xl font-bold gradient-bg bg-clip-text text-transparent">Portfolio API</h1>
|
| 23 |
+
</div>
|
| 24 |
+
<div class="flex items-center space-x-4">
|
| 25 |
+
<a href="/" class="text-gray-600 hover:text-purple-600 transition">Home</a>
|
| 26 |
+
<a href="/api-docs" class="text-gray-600 hover:text-purple-600 transition">API Docs</a>
|
| 27 |
+
</div>
|
| 28 |
+
</div>
|
| 29 |
+
</div>
|
| 30 |
+
</nav>
|
| 31 |
+
|
| 32 |
+
<div class="max-w-4xl mx-auto px-4 py-16">
|
| 33 |
+
<div class="bg-white rounded-xl shadow-lg p-8 card-hover">
|
| 34 |
+
<h1 class="text-3xl font-bold text-gray-800 mb-6">Terms of Service</h1>
|
| 35 |
+
<p class="text-gray-500 mb-4">Last updated: April 2, 2026</p>
|
| 36 |
+
|
| 37 |
+
<div class="space-y-6 text-gray-600">
|
| 38 |
+
<section>
|
| 39 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">1. Acceptance of Terms</h2>
|
| 40 |
+
<p>By accessing or using the Portfolio API, you agree to be bound by these Terms of Service. If you disagree with any part of the terms, you may not access the service.</p>
|
| 41 |
+
</section>
|
| 42 |
+
|
| 43 |
+
<section>
|
| 44 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">2. API Usage</h2>
|
| 45 |
+
<p>You agree to use the API only for lawful purposes and in accordance with these terms. You are responsible for:</p>
|
| 46 |
+
<ul class="list-disc list-inside mt-2 ml-4">
|
| 47 |
+
<li>Maintaining the security of your account credentials</li>
|
| 48 |
+
<li>All activities that occur under your account</li>
|
| 49 |
+
<li>Complying with all applicable laws and regulations</li>
|
| 50 |
+
</ul>
|
| 51 |
+
</section>
|
| 52 |
+
|
| 53 |
+
<section>
|
| 54 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">3. Rate Limits</h2>
|
| 55 |
+
<p>The API is subject to rate limits to ensure fair usage. Excessive usage may result in temporary suspension of access.</p>
|
| 56 |
+
</section>
|
| 57 |
+
|
| 58 |
+
<section>
|
| 59 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">4. Changes to Terms</h2>
|
| 60 |
+
<p>We reserve the right to modify these terms at any time. We will notify users of any material changes via email or through the API documentation.</p>
|
| 61 |
+
</section>
|
| 62 |
+
|
| 63 |
+
<section>
|
| 64 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-3">5. Contact</h2>
|
| 65 |
+
<p>Questions about the Terms of Service should be sent to: <a href="mailto:marklasfar@gmail.com" class="text-purple-600 hover:underline">marklasfar@gmail.com</a></p>
|
| 66 |
+
</section>
|
| 67 |
+
</div>
|
| 68 |
+
</div>
|
| 69 |
+
</div>
|
| 70 |
+
|
| 71 |
+
<footer class="bg-gray-800 text-white py-6 mt-8">
|
| 72 |
+
<div class="text-center text-gray-400 text-sm">
|
| 73 |
+
<p>© 2026 Ibrahim Al-Asfar. All rights reserved.</p>
|
| 74 |
+
</div>
|
| 75 |
+
</footer>
|
| 76 |
+
</body>
|
| 77 |
+
</html>
|