From 35a3097042bf1b2d575558af20081b75f8c3936a Mon Sep 17 00:00:00 2001 From: Sam Rolfe Date: Wed, 26 Aug 2026 13:31:37 +1000 Subject: [PATCH] Add professional README showcasing project, stack, and patterns --- README.md | 110 +++++++++++++++++++++++++----------------------------- 1 file changed, 51 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index 7dbf7eb..c8d99d2 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,65 @@ -# React + TypeScript + Vite +# AI Resume -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +**An AI-powered resume and career showcase — a terminal-inspired interface that lets recruiters ask questions and get answers about my work.** -Currently, two official plugins are available: +A React application that presents a resume through an interactive, terminal-flavored interface. Features Markdown rendering, syntax highlighting, and a terminal emulator (`xterm`) — designed to demonstrate both front-end craft and AI integration for employment outreach. -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) +## What it is -## React Compiler +A showcase site where my professional story is told through an interactive AI experience. Instead of a static PDF, recruiters engage with a terminal-style interface backed by AI — asking questions about experience, skills, and projects, and receiving answers rendered as rich Markdown. -The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). +## Tech stack -## Expanding the ESLint configuration +| Layer | Technology | +|-------|-----------| +| Framework | React 19 | +| Build | Vite 6 | +| Terminal UI | xterm (`@xterm/xterm`) | +| Markdown | react-markdown | +| Syntax highlighting | prismjs | +| Language | TypeScript | -If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: +## Architecture & design patterns -```js -export default defineConfig([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... +- **Terminal-driven UX** — `xterm` provides the interactive terminal canvas +- **Markdown pipeline** — AI responses rendered through `react-markdown` + prismjs syntax highlighting for code blocks +- **Componentized** — `App.tsx` orchestrates the hero, framework, and terminal views +- **Vite HMR** — fast development with hot module replacement +- **Static + dynamic blend** — static showcase content augmented by the live AI interface - // Remove tseslint.configs.recommended and replace with this - tseslint.configs.recommendedTypeChecked, - // Alternatively, use this for stricter rules - tseslint.configs.strictTypeChecked, - // Optionally, add this for stylistic rules - tseslint.configs.stylisticTypeChecked, +## Standards - // Other configs... - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) +- TypeScript +- Semantic HTML +- Vite production build (`tsc -b && vite build`) +- ESLint for code quality + +## Getting started + +```bash +npm install +npm run dev # development server +npm run build # production build +npm run lint # lint ``` -You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: +## Structure -```js -// eslint.config.js -import reactX from 'eslint-plugin-react-x' -import reactDom from 'eslint-plugin-react-dom' - -export default defineConfig([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... - // Enable lint rules for React - reactX.configs['recommended-typescript'], - // Enable lint rules for React DOM - reactDom.configs.recommended, - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) ``` +src/ +├── assets/ # Images (hero, framework logos) +├── App.tsx # Main application shell +├── App.css # Styling +├── index.css # Global styles +└── main.tsx # Entry point +``` + +## Roadmap + +- [ ] Wire the terminal to the AI resume backend (see `aboutme_chat` — the LangChain/RAG service) +- [ ] Embed AI Q&A about experience, skills, and projects +- [ ] Add project gallery with syntax-highlighted code samples + +--- + +*The front-end of the AI resume system. Backend services (LangChain/RAG chat) live in [aboutme_chat](https://gitea.lab.audasmedia.com.au/sam/aboutme_chat). Part of the Sam Rolfe portfolio family.*