From 76972809169a150a29b91304533b138fe14a6733 Mon Sep 17 00:00:00 2001 From: Kiyan Date: Sun, 21 Dec 2025 21:13:56 +0200 Subject: [PATCH] feat: Add README, documentation, future plans, and tech stack files for portfolio project --- README.md | 14 ++++++++++++++ documentation.md | 15 +++++++++++++++ future.md | 11 +++++++++++ stack.md | 18 ++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 README.md create mode 100644 documentation.md create mode 100644 future.md create mode 100644 stack.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..b8b1480 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# Personal Portfolio + +## 🌟 Overview +This project is a personal portfolio website. It is designed to showcase personal projects, professional experience, and skills in a clean and modern web interface. The backend is powered by Java and Spring Boot, with a dynamic frontend that leverages Thymeleaf. + +### Key Features +- **Dynamic Project Showcase**: Automatically fetches and displays public project repositories from a Gitea instance. +- **Detailed Project Views**: Each project has a dedicated page that pulls in `README.md`, `documentation.md`, and other details directly from its repository. +- **Interactive Resume**: A digital, easy-to-navigate resume page. +- **Contact Form**: A fully functional contact form that sends an email upon submission. +- **Markdown Rendering**: Project documentation and details written in Markdown are seamlessly converted to HTML. + +--- +*Focusing on simplicity, usability, and a clean user experience.* diff --git a/documentation.md b/documentation.md new file mode 100644 index 0000000..819e8a9 --- /dev/null +++ b/documentation.md @@ -0,0 +1,15 @@ +# 📖 Documentation + +This document provides instructions on how to set up, run, and understand the project structure. + +## Project Structure +The project follows a standard Spring Boot application structure: +- `src/main/java/com/example/Portfolio`: Root package. + - `Controllers`: Contains Spring MVC controllers for handling web requests. + - `Services`: Houses business logic, such as fetching project data from Gitea and sending emails. + - `DTO`: Data Transfer Objects used to shape data for the views. + - `Component`: Contains general-purpose components, like the Markdown service. +- `src/main/resources`: + - `static`: For static assets like CSS, JavaScript, and images. + - `templates`: Contains Thymeleaf HTML templates. + - `application.properties`: For application configuration. \ No newline at end of file diff --git a/future.md b/future.md new file mode 100644 index 0000000..39cb951 --- /dev/null +++ b/future.md @@ -0,0 +1,11 @@ +# 🚀 Future Plans + +I am constantly looking to evolve the Personal Portfolio. Here is what is currently on my development roadmap: + +### Core Application +- **Externalize Resume Data**: Move the hardcoded resume data from `ResumeController` into a YAML or JSON file for easier updates without requiring a full rebuild and deployment. +- **Add a Blog**: Integrate a blogging engine or a simple Markdown-based blog to share articles and tutorials. + +### DevOps & Operations +- **CI/CD Pipeline**: Set up a continuous integration and deployment pipeline using GitHub Actions or a similar tool to automate testing and deployments. +- **Containerization**: Dockerize the application for consistent development and production environments, and to prepare for orchestration with Kubernetes. \ No newline at end of file diff --git a/stack.md b/stack.md new file mode 100644 index 0000000..ab08fba --- /dev/null +++ b/stack.md @@ -0,0 +1,18 @@ +# 🛠️ Tech Stack + +### Backend +- **Language**: Java 25 +- **Framework**: Spring Boot +- **Web**: Spring MVC for traditional request handling and Spring WebFlux for the reactive `WebClient` used to communicate with the Gitea API. +- **Templating**: Thymeleaf for server-side template rendering. +- **Email**: Spring Boot Starter Mail for handling contact form submissions. + +### Frontend & Interactivity +- **Styling**: Bootstrap 5, HTML5, and custom CSS for a responsive and clean design. + +## Other tools +- **Markdown Processing**: `commonmark-java` for parsing and rendering Markdown files into HTML. +- **Version Control**: Git for source code management. + +## Build & DevOps +* **Build Tool**: Maven \ No newline at end of file