-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #7 from max1mde/legal_pages
feat: privacy policy & impressum
- Loading branch information
Showing
3 changed files
with
147 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -101,6 +101,15 @@ | |
"route":"/contact", | ||
"email":"[email protected]", | ||
"direct_contact":"Reach Me Directly", | ||
"legal":{ | ||
"enabled":true, | ||
"name":"Maxim", | ||
"address":"Vaitape - Bora Bora", | ||
"email":"[email protected]", | ||
"phone":"911", | ||
"tax_id":"Not Applicable", | ||
"legal_disclaimer":"This is a personal portfolio website for informational purposes." | ||
}, | ||
"social_links":[ | ||
{ | ||
"name":"GitHub", | ||
|
@@ -120,7 +129,7 @@ | |
], | ||
"contact_form":{ | ||
"enabled":true, | ||
"send_button": "Send Message", | ||
"send_button":"Send Message", | ||
"success_message":"Message sent successfully!", | ||
"failure_message":"Failed to send message. Please try again.", | ||
"error_message":"An error occurred. Please try again.", | ||
|
@@ -145,6 +154,62 @@ | |
} | ||
] | ||
} | ||
}, | ||
"privacy":{ | ||
"enabled":true, | ||
"header":"Privacy Policy", | ||
"route":"/privacy", | ||
"content":{ | ||
"contact_title": "Contact", | ||
"contact": "[email protected]", | ||
"introduction":"This portfolio website is designed with minimal data collection and maximum user privacy in mind.", | ||
"sections":[ | ||
{ | ||
"title":"Information Collection", | ||
"description":"We collect the following types of information:", | ||
"details":[ | ||
"Name, email, and message content submitted through the contact form", | ||
"IP address for rate limiting and security purposes", | ||
"Potential tracking of client-side interactions for website functionality" | ||
] | ||
}, | ||
{ | ||
"title":"Data Processing and Storage", | ||
"description":"Data collection and processing details:", | ||
"details":[ | ||
"Contact form submissions are processed in-memory and not permanently stored", | ||
"IP addresses are temporarily tracked for rate limiting (maximum 30 minutes)", | ||
"No persistent user data is saved or stored long-term" | ||
] | ||
}, | ||
{ | ||
"title":"Third-Party Services", | ||
"description":"Potential data collection by third-party services:", | ||
"details":[ | ||
"Image hosting services (e.g., shields.io) may collect IP address during image requests", | ||
"Standard browser and server logs may capture additional metadata" | ||
] | ||
}, | ||
{ | ||
"title":"Data Protection", | ||
"description":"We implement the following protection measures:", | ||
"details":[ | ||
"Rate limiting to prevent abuse of contact form", | ||
"Validation of submitted form data", | ||
"No storage of sensitive personal information" | ||
] | ||
}, | ||
{ | ||
"title":"User Rights", | ||
"description":"Users have the right to:", | ||
"details":[ | ||
"Request information about data collection", | ||
"Request deletion of any potential stored information", | ||
"Opt-out of non-essential data collection" | ||
] | ||
} | ||
] | ||
} | ||
} | ||
}, | ||
"card":{ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
"use client"; | ||
|
||
import config from "/CONFIG.json"; | ||
|
||
export default function Privacy() { | ||
const privacy = config.pages.privacy; | ||
|
||
return ( | ||
<div className="container mx-auto px-4 py-8 max-w-2xl"> | ||
<h1 className="c-cursor-text text-3xl font-bold text-center mb-10"> | ||
{privacy.header} | ||
</h1> | ||
|
||
<div className="bg-black/50 shadow-md rounded-lg p-8 space-y-6"> | ||
<p className="mb-6">{privacy.content.introduction}</p> | ||
|
||
{privacy.content.sections.map((section, index) => ( | ||
<div key={index} className="mb-6"> | ||
<h2 className="text-2xl font-semibold mb-4">{section.title}</h2> | ||
<p>{section.description}</p> | ||
{section.details && ( | ||
<ul className="list-disc list-inside text-gray-400 space-y-2"> | ||
{section.details.map((detail, detailIndex) => ( | ||
<li key={detailIndex}>{detail}</li> | ||
))} | ||
</ul> | ||
)} | ||
</div> | ||
))} | ||
|
||
<div className="mt-8 pt-4 border-t border-gray-700"> | ||
<h3 className="text-xl font-semibold mb-4"> | ||
{privacy.content.contact_title} | ||
</h3> | ||
<p>{privacy.content.contact}</p> | ||
</div> | ||
</div> | ||
</div> | ||
); | ||
} |