docs: update project documentation in README
All checks were successful
Deploy Portfolio to VPS / deploy (push) Successful in 21s

This commit is contained in:
Chneemann 2026-07-31 10:25:22 +02:00
parent 7b6f2299bb
commit d0140a82cf
No known key found for this signature in database

View file

@ -2,10 +2,12 @@
A fast, privacy-focused, and accessible developer portfolio built with **Next.js 16 (App Router)**, **Tailwind CSS**, and **React 19**, backed by a custom **lightweight PHP analytics engine**. A fast, privacy-focused, and accessible developer portfolio built with **Next.js 16 (App Router)**, **Tailwind CSS**, and **React 19**, backed by a custom **lightweight PHP analytics engine**.
[![Deployment Status](https://git.andre-kempf.com/Chneemann/portfolio/badges/workflows/deploy.yml/badge.svg?branch=main)](https://git.andre-kempf.com/Chneemann/portfolio/actions)
[![Website Status](https://img.shields.io/badge/website-online-brightgreen?style=flat-square&logo=google-chrome&logoColor=white)](https://andre-kempf.com)
![Next.js](https://img.shields.io/badge/Next.js-16-black?style=flat-square&logo=next.js) ![Next.js](https://img.shields.io/badge/Next.js-16-black?style=flat-square&logo=next.js)
![React](https://img.shields.io/badge/React-19-blue?style=flat-square&logo=react) ![React](https://img.shields.io/badge/React-19-blue?style=flat-square&logo=react)
![Tailwind CSS](https://img.shields.io/badge/Tailwind-v4-38bdf8?style=flat-square&logo=tailwind-css)
![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?style=flat-square&logo=typescript) ![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?style=flat-square&logo=typescript)
![Tailwind CSS](https://img.shields.io/badge/Tailwind-v4-38bdf8?style=flat-square&logo=tailwind-css)
--- ---
@ -23,15 +25,21 @@ A fast, privacy-focused, and accessible developer portfolio built with **Next.js
### Frontend ### Frontend
- **Framework:** [Next.js 16](https://nextjs.org/) (App Router) - **Framework:** [Next.js 16](https://nextjs.org/) (App Router)
- **UI & Styling:** [React 19](https://react.dev/), [Tailwind CSS](https://tailwindcss.com/) - **UI & Styling:** [React 19](https://react.dev/), [Tailwind CSS v4](https://tailwindcss.com/)
- **Icons & Components:** Lucide Icons, Custom UI Components - **Icons & Components:** Lucide Icons, Custom UI Components
- **State & Events:** Native CustomEvents, React State - **State & Events:** Native CustomEvents, React State
### Backend & Analytics ### Backend & Analytics
- **Language:** PHP 8.x - **Runtime:** Node.js / Next.js API Routes (App Router)
- **Data Privacy:** One-way IP Hashing (`MD5` + daily salt), Session Rate Limiting - **Data Privacy:** One-way IP Hashing (`SHA-256` / daily salt), Session Rate Limiting
- **Protocol:** JSON REST API (`analytics.php`) - **Protocol:** JSON REST API / Server Actions
### Infrastructure & CI/CD
- **Hosting:** VPS / Docker Containers
- **CI/CD Pipeline:** Self-hosted Forgejo Actions (Automated build & SSH deployment)
- **Mirroring:** Automated sync to GitHub
--- ---
@ -47,7 +55,7 @@ A fast, privacy-focused, and accessible developer portfolio built with **Next.js
1. **Clone the repository:** 1. **Clone the repository:**
```bash ```bash
git clone https://codeberg.org/Chneemann/portfolio.git git clone [https://git.andre-kempf.com/Chneemann/portfolio.git](https://git.andre-kempf.com/Chneemann/portfolio.git)
cd portfolio cd portfolio
``` ```
@ -67,17 +75,22 @@ A fast, privacy-focused, and accessible developer portfolio built with **Next.js
## 📁 Repository Structure ## 📁 Repository Structure
````text
## 📁 Repository Structure
```text ```text
├── src/ # Source Code ├── src/ # Source Code
│ ├── app/ # Next.js App Router (Pages & Metadata) │ ├── app/ # Next.js App Router (Pages, Routes & API)
│ │ ├── favicon.ico │ │ ├── api/ # Native Next.js Route Handlers
│ │ ├── globals.css # Global Styles & Tailwind Imports │ │ │ └── analytics/
│ │ ├── layout.tsx # Root Layout (Fonts, Metadata, Providers) │ │ │ └── route.ts # Live Metrics & Traffic Handler (JSON-based)
│ │ ├── page.tsx # Landing Page / Main View
│ │ ├── imprint/ # Imprint Page │ │ ├── imprint/ # Imprint Page
│ │ │ └── page.tsx │ │ │ └── page.tsx
│ │ └── privacy/ # Privacy Policy Page │ │ ├── privacy/ # Privacy Policy Page
│ │ └── page.tsx │ │ │ └── page.tsx
│ │ ├── globals.css # Global Styles & Tailwind Imports
│ │ ├── layout.tsx # Root Layout (Fonts, Metadata, Providers)
│ │ └── page.tsx # Landing Page / Main View
│ │ │ │
│ ├── components/ # Reusable UI & Layout Components │ ├── components/ # Reusable UI & Layout Components
│ │ ├── About.tsx # About Me & Bio Section │ │ ├── About.tsx # About Me & Bio Section
@ -85,7 +98,7 @@ A fast, privacy-focused, and accessible developer portfolio built with **Next.js
│ │ ├── AnalyticsWidget.tsx # Footer Performance & Metrics Badge │ │ ├── AnalyticsWidget.tsx # Footer Performance & Metrics Badge
│ │ ├── Background.tsx # Dynamic Canvas / Background Effects │ │ ├── Background.tsx # Dynamic Canvas / Background Effects
│ │ ├── CommandPalette.tsx # Cmd+K Interactive Command Menu │ │ ├── CommandPalette.tsx # Cmd+K Interactive Command Menu
│ │ ├── Contact.tsx # Contact Form Section │ │ ├── Contact.tsx # Contact Form Section (Formspree Integration)
│ │ ├── Footer.tsx # Footer with Links & Credits │ │ ├── Footer.tsx # Footer with Links & Credits
│ │ ├── Header.tsx # Navigation Header & Search Trigger │ │ ├── Header.tsx # Navigation Header & Search Trigger
│ │ ├── Hero.tsx # Hero Section / Intro Banner │ │ ├── Hero.tsx # Hero Section / Intro Banner
@ -94,33 +107,28 @@ A fast, privacy-focused, and accessible developer portfolio built with **Next.js
│ │ └── Social.tsx # Social Media Links & Bar Component │ │ └── Social.tsx # Social Media Links & Bar Component
│ │ │ │
│ └── lib/ # Pure Utility Scripts, Configs & Helpers │ └── lib/ # Pure Utility Scripts, Configs & Helpers
│ ├── paletteCommands.ts # Registered Commands & Actions │ ├── paletteCommands.ts # Registered Cmd+K Commands & Actions
│ └── playSudoEasterEgg.ts # Easter-Egg Shell Simulation Logic │ └── playSudoEasterEgg.ts # Easter-Egg Shell Simulation Logic
├── backend/ # Lightweight Backend & Mail/Analytics Engine
│ ├── templates/
│ │ └── emailTemplate.php # HTML/CSS Mail Template
│ ├── analytics.php # REST API for Traffic & Metrics
│ ├── config.php # Security, Rate Limiting & Hashing Setup
│ └── sendMail.php # Contact Form Mailer & Handler
├── public/ # Static Assets (Client Access) ├── public/ # Static Assets (Client Access)
│ ├── robots.txt # Search Engine Directives │ ├── robots.txt # Search Engine Directives
│ ├── sitemap.xml # XML Sitemap │ ├── sitemap.xml # XML Sitemap
│ └── assets/ │ └── assets/
│ ├── downloads/ # Downloadable Files (e.g. CV PDF)
│ ├── icons/ # SVG Icons & Favicons │ ├── icons/ # SVG Icons & Favicons
│ ├── images/ # Screenshots & Profile Assets │ ├── images/ # Profile Assets & Screenshots
│ └── projects/ # Project Graphics & Previews │ └── projects/ # Project Graphics & Previews
├── AGENTS.md # AI Agent Instructions ├── AGENTS.md # AI Agent Instructions
├── CLAUDE.md # Claude Code Instructions ├── CLAUDE.md # Claude Code Instructions
├── Dockerfile # Container Build Instructions
├── eslint.config.mjs # ESLint Rules ├── eslint.config.mjs # ESLint Rules
├── next.config.ts # Next.js Configuration ├── next.config.ts # Next.js Configuration
├── package.json # Project Dependencies & Scripts ├── package.json # Project Dependencies & Scripts
├── postcss.config.mjs # PostCSS Setup ├── postcss.config.mjs # PostCSS Setup
├── README.md # Project Documentation ├── README.md # Project Documentation
└── tsconfig.json # TypeScript Compiler Rules └── tsconfig.json # TypeScript Compiler Rules
``` ````
--- ---