aboutsummaryrefslogtreecommitdiffstats
path: root/src/public
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-03-21 20:50:43 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-03-21 20:50:43 +0100
commitd1ef15fa39935bfa0420c5ac2b8c269e294c9a6d (patch)
tree618158449863123f6b9527b9db6183f8c3ce5c91 /src/public
downloadcamagru-d1ef15fa39935bfa0420c5ac2b8c269e294c9a6d.tar.gz
camagru-d1ef15fa39935bfa0420c5ac2b8c269e294c9a6d.zip
Initial project scaffold
Set up MVC architecture with front controller, router, autoloader, database singleton, and Docker Compose stack (Nginx + PHP-FPM + MariaDB). Includes DB schema, responsive layout, dev tooling (php-cs-fixer, parallel-lint), and documentation.
Diffstat (limited to 'src/public')
-rw-r--r--src/public/assets/overlays/.gitkeep0
-rw-r--r--src/public/css/style.css64
-rw-r--r--src/public/index.php11
-rw-r--r--src/public/js/app.js3
4 files changed, 78 insertions, 0 deletions
diff --git a/src/public/assets/overlays/.gitkeep b/src/public/assets/overlays/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/public/assets/overlays/.gitkeep
diff --git a/src/public/css/style.css b/src/public/css/style.css
new file mode 100644
index 0000000..5677e91
--- /dev/null
+++ b/src/public/css/style.css
@@ -0,0 +1,64 @@
+*, *::before, *::after {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ color: #333;
+ background: #fafafa;
+}
+
+header {
+ background: #fff;
+ border-bottom: 1px solid #dbdbdb;
+ padding: 0.75rem 1rem;
+}
+
+header nav {
+ max-width: 960px;
+ margin: 0 auto;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.logo {
+ font-size: 1.5rem;
+ font-weight: bold;
+ text-decoration: none;
+ color: #333;
+}
+
+.nav-links a {
+ margin-left: 1rem;
+ text-decoration: none;
+ color: #0095f6;
+}
+
+main {
+ flex: 1;
+ max-width: 960px;
+ margin: 2rem auto;
+ padding: 0 1rem;
+ width: 100%;
+}
+
+footer {
+ text-align: center;
+ padding: 1rem;
+ color: #999;
+ font-size: 0.85rem;
+ border-top: 1px solid #dbdbdb;
+}
+
+@media (max-width: 600px) {
+ header nav {
+ flex-direction: column;
+ gap: 0.5rem;
+ }
+}
diff --git a/src/public/index.php b/src/public/index.php
new file mode 100644
index 0000000..2709bc0
--- /dev/null
+++ b/src/public/index.php
@@ -0,0 +1,11 @@
+<?php
+
+// Front controller: single entry point for all HTTP requests.
+
+declare(strict_types=1);
+
+require_once __DIR__ . '/../app/bootstrap.php';
+
+$router = new \App\Router();
+require_once __DIR__ . '/../config/routes.php';
+$router->dispatch();
diff --git a/src/public/js/app.js b/src/public/js/app.js
new file mode 100644
index 0000000..86b3c33
--- /dev/null
+++ b/src/public/js/app.js
@@ -0,0 +1,3 @@
+document.addEventListener('DOMContentLoaded', function () {
+ // App initialization
+});