CoffreFortV1.0

This commit is contained in:
Flatlogic Bot 2025-10-07 16:55:35 +00:00
parent d4c43acbee
commit f29fa66d41
6 changed files with 303 additions and 148 deletions

62
assets/css/custom.css Normal file
View File

@ -0,0 +1,62 @@
body {
font-family: 'Helvetica Neue', Arial, sans-serif;
color: #212529;
background-color: #f8f9fa;
}
h1, h2, h3, h4, h5, h6 {
font-family: Georgia, serif;
}
.navbar {
transition: background-color 0.3s ease-in-out;
}
.navbar-sticky {
background-color: rgba(255, 255, 255, 0.95);
box-shadow: 0 2px 4px rgba(0,0,0,.04);
}
.hero {
color: white;
padding: 12rem 0;
background: linear-gradient(45deg, rgba(13, 110, 253, 0.7), rgba(13, 110, 253, 0.9)), url('https://picsum.photos/seed/hero/1600/900') no-repeat center center;
background-size: cover;
}
.hero h1 {
font-size: 4.5rem;
font-weight: bold;
}
.section {
padding: 6rem 0;
}
.card {
border: none;
box-shadow: 0 0.5rem 1rem rgba(0,0,0,.15);
}
.btn-primary {
background-color: #0d6efd;
border-color: #0d6efd;
padding: 0.75rem 1.5rem;
font-weight: bold;
transition: background-color 0.2s, border-color 0.2s;
}
.btn-primary:hover {
background-color: #0b5ed7;
border-color: #0a58ca;
}
.btn-secondary {
padding: 0.75rem 1.5rem;
font-weight: bold;
}
footer {
background-color: #e9ecef;
}

36
assets/js/main.js Normal file
View File

@ -0,0 +1,36 @@
document.addEventListener('DOMContentLoaded', function () {
// Sticky header
const navbar = document.querySelector('.navbar');
if (navbar) {
window.addEventListener('scroll', () => {
if (window.scrollY > 50) {
navbar.classList.add('navbar-sticky');
} else {
navbar.classList.remove('navbar-sticky');
}
});
}
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
});
});
// Contact form validation
const contactForm = document.getElementById('contactForm');
if (contactForm) {
contactForm.addEventListener('submit', function(e) {
if (!this.checkValidity()) {
e.preventDefault();
e.stopPropagation();
}
this.classList.add('was-validated');
}, false);
}
});

12
includes/footer.php Normal file
View File

@ -0,0 +1,12 @@
<footer class="py-4 mt-auto">
<div class="container text-center">
<p class="mb-0 text-muted">&copy; <?php echo date('Y'); ?> CoffreFort. All Rights Reserved.</p>
<a href="privacy.php" class="text-muted">Privacy Policy</a>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
</body>
</html>

51
includes/header.php Normal file
View File

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CoffreFort</title>
<meta name="description" content="Securely share documents with your team. Built with Flatlogic Generator.">
<meta name="keywords" content="secure document sharing, file collaboration, team file sharing, business file management, secure file transfer, project documents, digital asset management, CoffreFort, Built with Flatlogic Generator">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:title" content="CoffreFort">
<meta property="og:description" content="Securely share documents with your team. Built with Flatlogic Generator.">
<meta property="og:image" content="<?php echo isset($_SERVER['PROJECT_IMAGE_URL']) ? $_SERVER['PROJECT_IMAGE_URL'] : '' ?>">
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:title" content="CoffreFort">
<meta property="twitter:description" content="Securely share documents with your team. Built with Flatlogic Generator.">
<meta property="twitter:image" content="<?php echo isset($_SERVER['PROJECT_IMAGE_URL']) ? $_SERVER['PROJECT_IMAGE_URL'] : '' ?>">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-transparent fixed-top">
<div class="container">
<a class="navbar-brand fw-bold" href="index.php">CoffreFort</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" href="index.php#about">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="index.php#features">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="index.php#contact">Contact</a>
</li>
<li class="nav-item">
<a class="btn btn-outline-primary ms-lg-2" href="#">Login</a>
</li>
</ul>
</div>
</div>
</nav>

252
index.php
View File

@ -1,150 +1,106 @@
<?php <?php include 'includes/header.php'; ?>
declare(strict_types=1);
@ini_set('display_errors', '1');
@error_reporting(E_ALL);
@date_default_timezone_set('UTC');
$phpVersion = PHP_VERSION; <!-- Hero Section -->
$now = date('Y-m-d H:i:s'); <header class="hero text-center">
?> <div class="container">
<!doctype html> <h1 class="display-3 fw-bold">Securely Share Your Documents</h1>
<html lang="en"> <p class="lead my-4">A professional, simple, and secure platform for sharing files with your team and clients.</p>
<head> <a href="#contact" class="btn btn-primary btn-lg">Get Started</a>
<meta charset="utf-8" /> <a href="#" class="btn btn-secondary btn-lg">Login</a>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>New Style</title>
<?php
// Read project preview data from environment
$projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? '';
$projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
?>
<?php if ($projectDescription): ?>
<!-- Meta description -->
<meta name="description" content='<?= htmlspecialchars($projectDescription) ?>' />
<!-- Open Graph meta tags -->
<meta property="og:description" content="<?= htmlspecialchars($projectDescription) ?>" />
<!-- Twitter meta tags -->
<meta property="twitter:description" content="<?= htmlspecialchars($projectDescription) ?>" />
<?php endif; ?>
<?php if ($projectImageUrl): ?>
<!-- Open Graph image -->
<meta property="og:image" content="<?= htmlspecialchars($projectImageUrl) ?>" />
<!-- Twitter image -->
<meta property="twitter:image" content="<?= htmlspecialchars($projectImageUrl) ?>" />
<?php endif; ?>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
<style>
:root {
--bg-color-start: #6a11cb;
--bg-color-end: #2575fc;
--text-color: #ffffff;
--card-bg-color: rgba(255, 255, 255, 0.01);
--card-border-color: rgba(255, 255, 255, 0.1);
}
body {
margin: 0;
font-family: 'Inter', sans-serif;
background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
color: var(--text-color);
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
text-align: center;
overflow: hidden;
position: relative;
}
body::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M-10 10L110 10M10 -10L10 110" stroke-width="1" stroke="rgba(255,255,255,0.05)"/></svg>');
animation: bg-pan 20s linear infinite;
z-index: -1;
}
@keyframes bg-pan {
0% { background-position: 0% 0%; }
100% { background-position: 100% 100%; }
}
main {
padding: 2rem;
}
.card {
background: var(--card-bg-color);
border: 1px solid var(--card-border-color);
border-radius: 16px;
padding: 2rem;
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1);
}
.loader {
margin: 1.25rem auto 1.25rem;
width: 48px;
height: 48px;
border: 3px solid rgba(255, 255, 255, 0.25);
border-top-color: #fff;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.hint {
opacity: 0.9;
}
.sr-only {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap; border: 0;
}
h1 {
font-size: 3rem;
font-weight: 700;
margin: 0 0 1rem;
letter-spacing: -1px;
}
p {
margin: 0.5rem 0;
font-size: 1.1rem;
}
code {
background: rgba(0,0,0,0.2);
padding: 2px 6px;
border-radius: 4px;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
footer {
position: absolute;
bottom: 1rem;
font-size: 0.8rem;
opacity: 0.7;
}
</style>
</head>
<body>
<main>
<div class="card">
<h1>Analyzing your requirements and generating your website…</h1>
<div class="loader" role="status" aria-live="polite" aria-label="Applying initial changes">
<span class="sr-only">Loading…</span>
</div>
<p class="hint"><?= ($_SERVER['HTTP_HOST'] ?? '') === 'appwizzy.com' ? 'AppWizzy' : 'Flatlogic' ?> AI is collecting your requirements and applying the first changes.</p>
<p class="hint">This page will update automatically as the plan is implemented.</p>
<p>Runtime: PHP <code><?= htmlspecialchars($phpVersion) ?></code> — UTC <code><?= htmlspecialchars($now) ?></code></p>
</div> </div>
</main> </header>
<footer>
Page updated: <?= htmlspecialchars($now) ?> (UTC) <!-- About Section -->
</footer> <section id="about" class="section bg-white">
</body> <div class="container">
</html> <div class="row align-items-center">
<div class="col-lg-6">
<h2 class="fw-bold">Your Private Document Hub</h2>
<p class="lead text-muted">CoffreFort provides a secure environment where you can upload, manage, and share your important files. Say goodbye to insecure email attachments and consumer-grade file sharing services.</p>
<p>Built for businesses and professionals who need control and visibility over their shared data. Manage users, set permissions, and track activity with ease.</p>
</div>
<div class="col-lg-6 text-center">
<img src="https://picsum.photos/seed/about/800/600" class="img-fluid rounded shadow-lg" alt="A modern office environment with professionals collaborating.">
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section id="features" class="section">
<div class="container">
<div class="text-center mb-5">
<h2 class="fw-bold">Features Designed for Security and Ease of Use</h2>
<p class="lead text-muted">Everything you need to collaborate securely.</p>
</div>
<div class="row">
<div class="col-md-4 mb-4">
<div class="card h-100 text-center p-4">
<div class="card-body">
<i class="bi bi-shield-lock-fill fs-1 text-primary"></i>
<h3 class="card-title h4 mt-3">Admin User Creation</h3>
<p class="card-text">Admins have full control over user accounts, ensuring only authorized individuals can access the system. Self-registration is disabled to maintain a secure, private environment.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-4">
<div class="card h-100 text-center p-4">
<div class="card-body">
<i class="bi bi-people-fill fs-1 text-primary"></i>
<h3 class="card-title h4 mt-3">Role-Based Access</h3>
<p class="card-text">Assign roles like Admin, User, Viewer, and Auditor to manage permissions effectively. Each role has specific capabilities, from full control to view-only access.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-4">
<div class="card h-100 text-center p-4">
<div class="card-body">
<i class="bi bi-clock-history fs-1 text-primary"></i>
<h3 class="card-title h4 mt-3">Audit Logs & Alerts</h3>
<p class="card-text">Keep track of all activity with detailed audit logs. Receive automated alerts for important events like new user sign-ups and storage quotas nearing their limit.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Contact Section -->
<section id="contact" class="section bg-white">
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto text-center">
<h2 class="fw-bold">Get in Touch</h2>
<p class="lead text-muted mb-5">Have questions? We'd love to hear from you. Fill out the form below and we'll get back to you as soon as possible.</p>
<form id="contactForm" class="needs-validation" novalidate>
<div class="row g-3">
<div class="col-md-6">
<div class="form-floating">
<input type="text" class="form-control" id="name" placeholder="Your Name" required>
<label for="name">Your Name</label>
<div class="invalid-feedback">A name is required.</div>
</div>
</div>
<div class="col-md-6">
<div class="form-floating">
<input type="email" class="form-control" id="email" placeholder="Your Email" required>
<label for="email">Your Email</label>
<div class="invalid-feedback">A valid email is required.</div>
</div>
</div>
<div class="col-12">
<div class="form-floating">
<textarea class="form-control" id="message" placeholder="Your Message" style="height: 150px;" required></textarea>
<label for="message">Your Message</label>
<div class="invalid-feedback">A message is required.</div>
</div>
</div>
</div>
<button type="submit" class="btn btn-primary btn-lg mt-4">Send Message</button>
</form>
</div>
</div>
</div>
</section>
<?php include 'includes/footer.php'; ?>

38
privacy.php Normal file
View File

@ -0,0 +1,38 @@
<?php include 'includes/header.php'; ?>
<main class="container section">
<h1>Privacy Policy</h1>
<p>This is a placeholder for the Privacy Policy page. Replace this text with your actual privacy policy.</p>
<p>Effective Date: <?php echo date('Y-m-d'); ?></p>
<h2>1. Introduction</h2>
<p>Welcome to CoffreFort. We respect your privacy and are committed to protecting your personal data. This privacy notice will inform you as to how we look after your personal data when you visit our website (regardless of where you visit it from) and tell you about your privacy rights and how the law protects you.</p>
<h2>2. Information We Collect</h2>
<p>We may collect, use, store and transfer different kinds of personal data about you which we have grouped together as follows:</p>
<ul>
<li>Identity Data includes first name, last name, username or similar identifier.</li>
<li>Contact Data includes billing address, delivery address, email address and telephone numbers.</li>
<li>Technical Data includes internet protocol (IP) address, your login data, browser type and version, time zone setting and location, browser plug-in types and versions, operating system and platform, and other technology on the devices you use to access this website.</li>
</ul>
<h2>3. How We Use Your Information</h2>
<p>We will only use your personal data when the law allows us to. Most commonly, we will use your personal data in the following circumstances:</p>
<ul>
<li>Where we need to perform the contract we are about to enter into or have entered into with you.</li>
<li>Where it is necessary for our legitimate interests (or those of a third party) and your interests and fundamental rights do not override those interests.</li>
<li>Where we need to comply with a legal obligation.</li>
</ul>
<h2>4. Data Security</h2>
<p>We have put in place appropriate security measures to prevent your personal data from being accidentally lost, used or accessed in an unauthorised way, altered or disclosed.</p>
<h2>5. Your Legal Rights</h2>
<p>Under certain circumstances, you have rights under data protection laws in relation to your personal data, including the right to request access, correction, erasure, restriction of processing, to object to processing, as well as the right to data portability.</p>
<h2>6. Contact Us</h2>
<p>If you have any questions about this privacy notice, please contact us at contact@coffrefort.com</p>
</main>
<?php include 'includes/footer.php'; ?>