From f80bceaa3c54af95fde25afdd97a4a1eeb993bf2 Mon Sep 17 00:00:00 2001 From: StormRunner06106 Date: Fri, 11 Sep 2026 10:13:41 -0700 Subject: [PATCH] Initial website was built base on the context --- .gitignore | 20 + Alexander Herlan Resume 2024.md | 2 +- README.md | 77 + backend/.env.example | 15 + backend/__init__.py | 2 + backend/data/experience.json | 116 ++ backend/data/posts.json | 252 +++ backend/data/profile.json | 33 + backend/data/skills.json | 41 + backend/main.py | 196 +++ backend/requirements.txt | 4 + frontend/index.html | 19 + frontend/package-lock.json | 948 +++++++++++ frontend/package.json | 21 + frontend/public/alexander-herlan.png | Bin 0 -> 208219 bytes frontend/src/App.jsx | 58 + frontend/src/api.js | 36 + frontend/src/components/Icon.jsx | 54 + frontend/src/components/Layout.jsx | 88 + frontend/src/components/PageHeader.jsx | 13 + frontend/src/components/Status.jsx | 21 + frontend/src/main.jsx | 14 + frontend/src/pages/AboutPage.jsx | 70 + frontend/src/pages/BlogPage.jsx | 132 ++ frontend/src/pages/BlogPostPage.jsx | 75 + frontend/src/pages/ContactPage.jsx | 142 ++ frontend/src/pages/ExperiencePage.jsx | 167 ++ frontend/src/pages/NotFoundPage.jsx | 13 + frontend/src/pages/SkillsPage.jsx | 79 + frontend/src/styles.css | 2109 ++++++++++++++++++++++++ frontend/vite.config.js | 16 + 31 files changed, 4832 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 backend/.env.example create mode 100644 backend/__init__.py create mode 100644 backend/data/experience.json create mode 100644 backend/data/posts.json create mode 100644 backend/data/profile.json create mode 100644 backend/data/skills.json create mode 100644 backend/main.py create mode 100644 backend/requirements.txt create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/alexander-herlan.png create mode 100644 frontend/src/App.jsx create mode 100644 frontend/src/api.js create mode 100644 frontend/src/components/Icon.jsx create mode 100644 frontend/src/components/Layout.jsx create mode 100644 frontend/src/components/PageHeader.jsx create mode 100644 frontend/src/components/Status.jsx create mode 100644 frontend/src/main.jsx create mode 100644 frontend/src/pages/AboutPage.jsx create mode 100644 frontend/src/pages/BlogPage.jsx create mode 100644 frontend/src/pages/BlogPostPage.jsx create mode 100644 frontend/src/pages/ContactPage.jsx create mode 100644 frontend/src/pages/ExperiencePage.jsx create mode 100644 frontend/src/pages/NotFoundPage.jsx create mode 100644 frontend/src/pages/SkillsPage.jsx create mode 100644 frontend/src/styles.css create mode 100644 frontend/vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79d51c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# Frontend +frontend/node_modules/ +frontend/dist/ + +# Python +__pycache__/ +*.py[cod] +.venv/ +venv/ + +# Local configuration +.env +backend/.env + +# Editors and operating systems +.DS_Store +Thumbs.db +.idea/ +.vscode/ + diff --git a/Alexander Herlan Resume 2024.md b/Alexander Herlan Resume 2024.md index 2dd6d27..a1a116d 100644 --- a/Alexander Herlan Resume 2024.md +++ b/Alexander Herlan Resume 2024.md @@ -3,7 +3,7 @@ **Senior Software Engineer · DevOps & IT Manager** 1207 El Portal NW, Albuquerque, NM 87107 -[813-402-8692](tel:+18134028692) · [alexwherlan@gmail.com](mailto:alexwherlan@gmail.com) · [alex.herlan.dev](https://alex.herlan.dev) +[813-402-8692](tel:+18134028692) · [alexwherlan@gmail.com](mailto:alexwherlan@gmail.com) · [alex.herlan.dev](https://alex.herlan.dev) · [LinkedIn](https://linkedin.com/in/alexander-herlan) · [GitHub](https://github.com/AlexanderHerlan) ## Overview diff --git a/README.md b/README.md new file mode 100644 index 0000000..cab9f1a --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# Alex Herlan Portfolio + +A custom React and FastAPI portfolio built from Alex Herlan's résumé. The interface uses hand-written CSS—no Tailwind or component library—and all profile, career, skills, and journal content is loaded from JSON through the API. + +## Project structure + +```text +backend/ + data/ JSON content store + main.py FastAPI routes, SMTP delivery, and production serving + requirements.txt +frontend/ + public/ Alex's locally stored profile image + src/ React pages, components, and custom CSS +Alexander Herlan Resume 2024.pdf +Alexander Herlan Resume 2024.md +``` + +## Run locally + +Create and install the Python environment from the repository root: + +```powershell +python -m venv .venv +.\.venv\Scripts\Activate.ps1 +pip install -r backend\requirements.txt +``` + +Start FastAPI: + +```powershell +uvicorn backend.main:app --reload --port 8000 +``` + +In a second terminal, start React: + +```powershell +cd frontend +npm install +npm run dev +``` + +Open `http://localhost:5173`. Vite proxies `/api` requests to FastAPI on port 8000. + +## Contact-form delivery + +The form uses `POST /api/contact` and sends email through SMTP. Copy `backend/.env.example` to `backend/.env`, fill in the SMTP values, and start the API with the environment file: + +```powershell +uvicorn backend.main:app --reload --port 8000 --env-file backend\.env +``` + +If SMTP is unavailable, the API returns a clear delivery error and the page keeps Alex's direct email, LinkedIn, and GitHub links visible. + +## Content API + +- `GET /api/profile` +- `GET /api/experience` +- `GET /api/skills` +- `GET /api/posts` +- `GET /api/posts/{slug}` +- `GET /api/resume` +- `POST /api/contact` + +Edit the files in `backend/data` to update portfolio content. No database is required. + +## Production build + +```powershell +cd frontend +npm run build +cd .. +uvicorn backend.main:app --host 0.0.0.0 --port 8000 +``` + +When `frontend/dist` exists, FastAPI serves the built single-page application and supports direct links such as `/experience` and `/blog/{slug}`. + diff --git a/backend/.env.example b/backend/.env.example new file mode 100644 index 0000000..0c11eaf --- /dev/null +++ b/backend/.env.example @@ -0,0 +1,15 @@ +# Where contact-form messages should be delivered. +CONTACT_TO_EMAIL=alexwherlan@gmail.com + +# SMTP connection used by POST /api/contact. +SMTP_HOST=smtp.example.com +SMTP_PORT=587 +SMTP_USERNAME=your-smtp-username +SMTP_PASSWORD=your-smtp-password +SMTP_FROM_EMAIL=portfolio@example.com +SMTP_USE_TLS=true +SMTP_USE_SSL=false + +# Comma-separated origins allowed to call the API during development. +FRONTEND_ORIGINS=http://localhost:5173 + diff --git a/backend/__init__.py b/backend/__init__.py new file mode 100644 index 0000000..169018c --- /dev/null +++ b/backend/__init__.py @@ -0,0 +1,2 @@ +"""Alex Herlan portfolio API package.""" + diff --git a/backend/data/experience.json b/backend/data/experience.json new file mode 100644 index 0000000..71baf9f --- /dev/null +++ b/backend/data/experience.json @@ -0,0 +1,116 @@ +[ + { + "id": "independent", + "company": "Independent", + "role": "Software Developer / Freelancer", + "location": "Remote", + "start": "2024-06", + "end": null, + "summary": "I develop web and mobile applications for long-term clients, agency partners, and professional referrals—owning the path from discovery and architecture through delivery, deployment, and support.", + "highlights": [ + "Expanded an initial WordPress engagement into a complete membership and qualification platform for the Irish Institute of Pensions Management.", + "Built Android applications for an AI-assisted safety workflow that detects firearms and relays incident evidence to monitoring teams and first responders.", + "Delivered a mortgage-lending platform on Cloudflare with real-time messaging, relational data, and secure document storage." + ], + "technologies": ["Preact", "Bun", "Cloudflare", "Android", "Kotlin", "TensorFlow Lite", "PHP", "PostgreSQL"], + "projects": [ + { + "name": "IIPM.ie", + "period": "Apr 2025 – Mar 2026", + "href": "https://iipm.ie" + }, + { + "name": "SafeSchoolz", + "period": "Jun 2024 – Jun 2025", + "href": "https://heroeyez.com" + }, + { + "name": "Equity Funding Source", + "period": "Apr 2026 – Jul 2026", + "href": "https://equityfundingsource.com" + } + ] + }, + { + "id": "covius", + "company": "Covius, LLC", + "role": "Senior Software Engineer", + "location": "Pompano Beach, FL", + "start": "2022-01", + "end": "2024-04", + "summary": "Helped transform RealtyBid.com into a modern, real-time real estate auction platform, spanning its REST backend, responsive Angular experience, legacy data, and internal administration tools.", + "highlights": [ + "Participated in the complete redesign of a major legacy website with substantial historical data.", + "Helped adapt a legacy database to a modern application design.", + "Created a responsive interface that worked equally well on desktop and mobile.", + "Refined the product with QA testers and business partners over many collaborative sprints.", + "Used RxJS and Angular to deliver asynchronous, real-time auction feedback." + ], + "technologies": ["Angular", "RxJS", "REST APIs", "JavaScript", "SQL"] + }, + { + "id": "sead", + "company": "SEAD Software", + "role": "Software Engineer", + "location": "Delray Beach, FL", + "start": "2021-04", + "end": "2022-07", + "summary": "Designed web applications and business analytics for healthcare and legal teams while improving development operations through Azure DevOps and delivery pipelines.", + "highlights": [ + "Used Google Cloud Vision to recognize and categorize physical laboratory documents.", + "Built a Twilio-based messaging application that responded to customer interactions and generated leads for law firms.", + "Maintained AWS infrastructure supporting multiple projects.", + "Implemented Azure DevOps infrastructure and trained staff on the platform.", + "Maintained a large Git repository serving multiple clients." + ], + "technologies": ["Python", "Google Cloud Vision", "Twilio", "AWS", "Azure DevOps"] + }, + { + "id": "clarity", + "company": "Clarity Diagnostics & Lab Solutions", + "role": "Director of IT", + "location": "Boca Raton, FL", + "start": "2020-09", + "end": "2022-01", + "summary": "Led technology decisions for a boutique medical testing laboratory and diagnostics manufacturer as it grew to serve outside entities, including local and state governments.", + "highlights": [ + "Implemented physical keycard access security across the laboratory facility.", + "Established email and cloud-application security standards in Google Workspace and Microsoft 365.", + "Expanded laboratory infrastructure and assisted with quality assurance for medical testing equipment.", + "Managed software quality, deployment, training, and the daily work of other IT staff." + ], + "technologies": ["IT Leadership", "Google Workspace", "Microsoft 365", "Security", "QA"] + }, + { + "id": "mytap", + "company": "MyTap / Which Craft", + "role": "Lead Developer", + "location": "Albuquerque, NM", + "start": "2016-01", + "end": "2020-04", + "summary": "Collaborated with a design team on a craft-beer recommendation engine powered by web scraping and natural language processing of online reviews.", + "highlights": [ + "Implemented a robust web scraper with Python and Scrapy.", + "Created a responsive browser-based phone experience.", + "Designed NLP code that built flavor profiles from adjective frequency in review text.", + "Maintained a Django backend backed by PostgreSQL." + ], + "technologies": ["Python", "Scrapy", "NLP", "Django", "PostgreSQL"] + }, + { + "id": "tricore", + "company": "TriCore Reference Laboratories", + "role": "Production Support Specialist", + "location": "Albuquerque, NM", + "start": "2013-04", + "end": "2017-01", + "summary": "Supported critical healthcare technology across regional hospitals, from urgent access issues to specialized clinical applications and patient-record transmission.", + "highlights": [ + "Held sole overnight responsibility for a production environment normally supported by a 60-person daytime team.", + "Monitored patient-record transmission across multiple hospital systems and specialized clinical applications.", + "Guided medical staff through time-sensitive, patient-critical troubleshooting.", + "Monitored infrastructure, corrected errors, trained new help-desk employees, and remained on call for emergencies." + ], + "technologies": ["Production Support", "Healthcare IT", "Monitoring", "Incident Response", "Training"] + } +] diff --git a/backend/data/posts.json b/backend/data/posts.json new file mode 100644 index 0000000..57e79fa --- /dev/null +++ b/backend/data/posts.json @@ -0,0 +1,252 @@ +[ + { + "slug": "calm-systems-in-critical-environments", + "title": "Calm Systems in Critical Environments", + "excerpt": "What overnight healthcare support taught me about observability, escalation, and designing for the person under pressure.", + "published_at": "2013-10-16", + "read_time": 5, + "tags": ["Healthcare IT", "Operations", "Reliability"], + "accent": "mint", + "content": [ + { + "heading": "The interface is part of the incident response", + "paragraphs": [ + "In a critical environment, the best interface is rarely the one with the most information. It is the one that helps a tired person identify the next useful action. Clear severity, an obvious owner, and a short trail of recent events matter more than a decorative dashboard.", + "Production support made this tangible for me. When a patient-facing workflow is interrupted, uncertainty grows faster than the technical problem. Good systems reduce that uncertainty by making state visible and escalation paths explicit." + ] + }, + { + "heading": "Design for the handoff", + "paragraphs": [ + "A fix is only half of an incident. The other half is leaving a useful record for the next person: what happened, what was checked, what changed, and what still needs attention. That small discipline compounds into organizational memory.", + "I now carry the same principle into software engineering. Logs should explain behavior, alerts should point toward decisions, and runbooks should be written for the moment when context is scarce. Reliability is a product experience for the people operating the product." + ] + } + ] + }, + { + "slug": "turning-beer-reviews-into-flavor-maps", + "title": "Turning Beer Reviews into Flavor Maps", + "excerpt": "A practical early NLP experiment: translating messy, enthusiastic review text into a useful recommendation signal.", + "published_at": "2016-06-09", + "read_time": 6, + "tags": ["Python", "NLP", "Scrapy"], + "accent": "peach", + "content": [ + { + "heading": "Start with the language people already use", + "paragraphs": [ + "Beer reviews are expressive, inconsistent, and full of useful sensory language. That made them an interesting source for a recommendation engine. Instead of asking users to learn a rigid flavor taxonomy, we could learn from the adjectives reviewers naturally repeated.", + "The first challenge was collection. A Scrapy pipeline gathered public review text, normalized obvious variations, and retained enough source context to investigate outliers later. Clean provenance mattered because a mysterious score is difficult to improve." + ] + }, + { + "heading": "Simple models can create real value", + "paragraphs": [ + "The flavor profiles began with frequency, weighting, and domain-specific synonym groups. It was not a giant language model; it was a focused tool with a clear job. That constraint made the output easier to explain and tune with the product team.", + "The lesson has aged well: use the smallest model that reliably improves the experience. Sophistication is valuable when it earns its place through better outcomes, not when it merely makes the architecture sound impressive." + ] + } + ] + }, + { + "slug": "scrapy-pipelines-that-age-well", + "title": "Scrapy Pipelines That Age Well", + "excerpt": "Patterns for keeping a web-scraping system observable, respectful, and maintainable as source sites evolve.", + "published_at": "2018-03-22", + "read_time": 7, + "tags": ["Python", "Scrapy", "Data Engineering"], + "accent": "blue", + "content": [ + { + "heading": "Assume the source will change", + "paragraphs": [ + "A scraper is an agreement with a document you do not control. Selectors change, fields disappear, and a page that looked uniform reveals a decade of edge cases. The maintainable response is to isolate extraction rules, validate every record, and make failures visible before they quietly poison downstream data.", + "I prefer small spiders with explicit responsibilities and item pipelines that handle normalization. Fixtures from real pages make regression tests useful, while per-source metrics reveal whether a deployment changed yield or quality." + ] + }, + { + "heading": "Politeness is architecture", + "paragraphs": [ + "Rate limits, caching, retries, and clear identification are not optional finishing touches. They shape the system. A respectful crawler is less likely to create operational trouble and usually produces more consistent data as a side effect.", + "The best scraping pipeline is boring to operate. It resumes safely, explains skipped records, and lets a developer update one source without fearing a cascade of unrelated changes." + ] + } + ] + }, + { + "slug": "growing-it-without-growing-chaos", + "title": "Growing IT Without Growing Chaos", + "excerpt": "A field guide to scaling a small organization’s technology through standards, documentation, and sensible defaults.", + "published_at": "2020-11-12", + "read_time": 5, + "tags": ["IT Leadership", "Security", "Operations"], + "accent": "yellow", + "content": [ + { + "heading": "Consistency is a form of leverage", + "paragraphs": [ + "Small organizations often grow through a series of urgent, reasonable exceptions. Soon every laptop, account, and workflow has its own history. The first step toward scale is not buying a larger platform—it is agreeing on a small number of defaults.", + "Identity, device setup, shared storage, physical access, and offboarding deserve documented paths. A consistent baseline makes support faster and security easier to reason about." + ] + }, + { + "heading": "Meet people where the work happens", + "paragraphs": [ + "Policies fail when they ignore daily constraints. In a laboratory, uptime, traceability, and physical workflow are connected. Technology decisions have to account for gloves, shared stations, regulated data, and the cost of interrupting a test process.", + "Good IT leadership combines standards with observation. Spend time with the people doing the work, remove the friction that creates workarounds, and make the secure path the natural path." + ] + } + ] + }, + { + "slug": "from-paper-to-structured-data-with-vision-ai", + "title": "From Paper to Structured Data with Vision AI", + "excerpt": "Lessons from using cloud computer vision to categorize laboratory documents without hiding uncertainty from operators.", + "published_at": "2021-07-08", + "read_time": 7, + "tags": ["AI", "Computer Vision", "Python"], + "accent": "lavender", + "content": [ + { + "heading": "Recognition is only the first step", + "paragraphs": [ + "An OCR or vision service can return impressive output while still leaving the product team with the difficult work: deciding which text matters, how confident the system should be, and when a person needs to review the result.", + "For laboratory documents, I treated extraction as a pipeline. Image quality checks came first, recognition second, domain validation third, and classification last. Keeping those stages separate made errors explainable." + ] + }, + { + "heading": "Build uncertainty into the workflow", + "paragraphs": [ + "The safest automation does not pretend every prediction is equal. Confidence thresholds, structured validation, and a review queue allow a system to move quickly on clear cases while giving ambiguous documents the attention they deserve.", + "That human review is not a failure of AI. It is part of a complete product. Each correction can improve rules, training data, and monitoring, creating a feedback loop grounded in real operations." + ] + } + ] + }, + { + "slug": "real-time-angular-without-the-tangle", + "title": "Real-Time Angular Without the Tangle", + "excerpt": "How to use RxJS as a clear model for changing state instead of letting streams spread complexity through an application.", + "published_at": "2022-05-19", + "read_time": 8, + "tags": ["Angular", "RxJS", "Frontend"], + "accent": "blue", + "content": [ + { + "heading": "Name the events that matter", + "paragraphs": [ + "A real-time auction interface has several clocks running at once: the server’s state, the user’s intent, network latency, and the visible countdown. RxJS is useful because it gives those changes a vocabulary, but only if streams correspond to meaningful product events.", + "I start by naming the sources and defining which one is authoritative. Server events update the canonical auction state. Local actions can create an optimistic state, but they remain distinguishable until acknowledged." + ] + }, + { + "heading": "Keep the view boring", + "paragraphs": [ + "The component should receive a coherent view model rather than coordinate half a dozen subscriptions. Combining streams at a boundary keeps templates predictable and makes loading, reconnecting, and error states testable.", + "Reactive code is clearest when it reads like a timeline. Explicit cancellation, narrow side effects, and descriptive operators help the next engineer understand not just what updates, but why." + ] + } + ] + }, + { + "slug": "modern-apis-over-legacy-data", + "title": "Modern APIs Over Legacy Data", + "excerpt": "A careful approach to modernizing the experience around a mature database while protecting the history inside it.", + "published_at": "2023-09-14", + "read_time": 7, + "tags": ["REST APIs", "Databases", "Architecture"], + "accent": "mint", + "content": [ + { + "heading": "History is part of the domain", + "paragraphs": [ + "A legacy database is often described as a technical obstacle, but its irregularities usually encode years of business decisions. Replacing it without understanding that history can produce a cleaner schema and a less correct product.", + "A modern API can act as a translation boundary. It gives new clients consistent resources and validation while isolating the rules required to work safely with older records." + ] + }, + { + "heading": "Migrate in observable steps", + "paragraphs": [ + "I favor small, measurable transitions: introduce the boundary, compare old and new behavior, backfill with reconciliation reports, and only then retire a legacy path. Every stage should have a way to answer whether data was lost or behavior changed.", + "Modernization succeeds when users experience steady improvement and operators retain confidence. The architecture matters, but trust is the real migration target." + ] + } + ] + }, + { + "slug": "useful-object-detection-on-android", + "title": "Useful Object Detection on Android", + "excerpt": "Moving from a promising model to a practical TensorFlow Lite pipeline under mobile performance constraints.", + "published_at": "2024-10-03", + "read_time": 8, + "tags": ["AI", "Android", "TensorFlow Lite"], + "accent": "peach", + "content": [ + { + "heading": "The device changes the definition of accurate", + "paragraphs": [ + "A model can score well in a notebook and still be unusable on a phone. Frame rate, thermal limits, camera variability, and time-to-alert are part of accuracy because they determine whether the result arrives when it matters.", + "Testing YOLO and TensorFlow Lite options made the tradeoffs concrete. The right model was the one that produced stable detections within the device’s compute budget, not simply the largest model we could convert." + ] + }, + { + "heading": "Train for the camera you have", + "paragraphs": [ + "Public datasets supplied breadth, while custom captures exposed the angles, lighting, backgrounds, and object sizes the application would actually see. Reviewing false positives was especially valuable because a safety workflow has a real cost for every alert.", + "A production detection pipeline is model, camera, preprocessing, thresholds, evidence capture, and human response. Improving any one piece helps; measuring the entire path is what makes the feature useful." + ] + } + ] + }, + { + "slug": "designing-an-alert-pipeline-people-can-trust", + "title": "Designing an Alert Pipeline People Can Trust", + "excerpt": "Why evidence, timing, and graceful failure matter as much as detection in an AI-assisted safety workflow.", + "published_at": "2025-06-26", + "read_time": 6, + "tags": ["System Design", "AI", "Twilio"], + "accent": "lavender", + "content": [ + { + "heading": "An alert is a chain of decisions", + "paragraphs": [ + "Detection starts the workflow; it does not complete it. A useful alert needs context, a timestamp, a clear source, supporting evidence, and a dependable path to a person who can evaluate it.", + "For a mobile safety platform, that meant pairing a screenshot with a short evidence clip, initiating a call workflow, and forwarding incident information to an existing monitoring portal. Each transition needed an explicit success and failure state." + ] + }, + { + "heading": "Design the degraded path first", + "paragraphs": [ + "Networks disappear, uploads stall, and downstream services become unavailable. The product should preserve evidence locally, communicate delivery state honestly, and retry without multiplying alerts.", + "Trust grows when the interface distinguishes detected, queued, delivered, acknowledged, and resolved. Those words turn a complicated distributed workflow into a shared understanding for users and operators." + ] + } + ] + }, + { + "slug": "small-durable-systems-on-cloudflare", + "title": "Small, Durable Systems on Cloudflare", + "excerpt": "A pragmatic architecture for lightweight products that still need relational data, files, and real-time coordination.", + "published_at": "2026-06-11", + "read_time": 7, + "tags": ["Cloudflare", "Preact", "Bun"], + "accent": "yellow", + "content": [ + { + "heading": "Choose boundaries before services", + "paragraphs": [ + "A lending workflow needs durable records, private documents, timely collaboration, and an audit-friendly trail. Those needs point to different storage and execution patterns, but they do not require a sprawling infrastructure diagram.", + "I used Workers for server-side execution, D1 for relational workflow data, R2 for documents, and Durable Objects for coordinated real-time conversations. Each service had one legible responsibility." + ] + }, + { + "heading": "Lightweight does not mean temporary", + "paragraphs": [ + "Preact and Bun kept the application loop fast, while schema migrations, typed boundaries, and idempotent operations protected the data. The goal was not minimum code at any cost; it was the smallest system that could be operated with confidence.", + "That is the architecture I increasingly prefer: close to users, explicit about state, and modest enough that one engineer can still understand the full path of a request." + ] + } + ] + } +] diff --git a/backend/data/profile.json b/backend/data/profile.json new file mode 100644 index 0000000..fb97581 --- /dev/null +++ b/backend/data/profile.json @@ -0,0 +1,33 @@ +{ + "name": "Alexander Herlan", + "display_name": "Alex Herlan", + "title": "Senior Software Engineer · DevOps & IT Manager", + "eyebrow": "Full-stack engineer · AI builder · systems thinker", + "headline": "I build dependable software for ideas that need to work in the real world.", + "summary": "I’m a hands-on software engineer with more than 27 years across full-stack development, cloud infrastructure, IT leadership, and user experience. I turn complex requirements into calm, useful products—from responsive web platforms and legacy-system modernization to mobile AI and real-time operational tools.", + "availability": "Open to thoughtful product and engineering work", + "portrait": "/alexander-herlan.png", + "resume_url": "/api/resume", + "socials": [ + { + "label": "Email", + "value": "alexwherlan@gmail.com", + "href": "mailto:alexwherlan@gmail.com", + "kind": "email" + }, + { + "label": "LinkedIn", + "value": "alexander-herlan", + "href": "https://linkedin.com/in/alexander-herlan", + "kind": "linkedin" + }, + { + "label": "GitHub", + "value": "AlexanderHerlan", + "href": "https://github.com/AlexanderHerlan", + "kind": "github" + } + ], + "focus": ["Product engineering", "Applied AI", "Cloud systems"] +} + diff --git a/backend/data/skills.json b/backend/data/skills.json new file mode 100644 index 0000000..bee7956 --- /dev/null +++ b/backend/data/skills.json @@ -0,0 +1,41 @@ +{ + "intro": "A broad toolkit shaped by shipping products, supporting critical systems, and learning whatever the work requires.", + "principles": [ + "Solve the operational problem, not just the ticket", + "Make complex systems feel understandable", + "Leave the codebase easier to change" + ], + "categories": [ + { + "name": "Languages & Web", + "description": "From service layers to responsive interfaces.", + "accent": "blue", + "items": ["Python", "JavaScript", "TypeScript", "Go", "PHP", "Java", "Kotlin", "C / C++", "HTML5", "CSS3", "Sass"] + }, + { + "name": "Frameworks & Runtime", + "description": "Tools for building focused, maintainable products.", + "accent": "lavender", + "items": ["FastAPI", "Django", "Flask", "React", "Preact", "Angular", "RxJS", "Node.js", "Bun", "WordPress"] + }, + { + "name": "AI & Data", + "description": "Practical machine intelligence and reliable data layers.", + "accent": "peach", + "items": ["TensorFlow Lite", "Computer Vision", "Natural Language Processing", "Scrapy", "PostgreSQL", "SQL Server", "MySQL", "MongoDB", "Redis"] + }, + { + "name": "Cloud & Delivery", + "description": "Infrastructure that supports the product without stealing the show.", + "accent": "mint", + "items": ["AWS", "Azure DevOps", "Cloudflare Workers", "D1", "Durable Objects", "R2", "Docker", "Kubernetes", "Linux", "Git", "CI/CD"] + }, + { + "name": "Product & Operations", + "description": "The connective work that turns software into an outcome.", + "accent": "yellow", + "items": ["System Architecture", "REST APIs", "Responsive Design", "UX Collaboration", "Technical Support", "IT Leadership", "Jira", "Google Workspace", "Microsoft 365"] + } + ] +} + diff --git a/backend/main.py b/backend/main.py new file mode 100644 index 0000000..8b7e4e5 --- /dev/null +++ b/backend/main.py @@ -0,0 +1,196 @@ +from __future__ import annotations + +import json +import os +import re +import smtplib +import ssl +from email.message import EmailMessage +from functools import lru_cache +from pathlib import Path +from typing import Any + +from fastapi import FastAPI, HTTPException, Query +from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import FileResponse +from pydantic import BaseModel, EmailStr, Field +from starlette.concurrency import run_in_threadpool + + +BASE_DIR = Path(__file__).resolve().parent +PROJECT_DIR = BASE_DIR.parent +DATA_DIR = BASE_DIR / "data" +FRONTEND_DIST = PROJECT_DIR / "frontend" / "dist" +RESUME_PATH = PROJECT_DIR / "Alexander Herlan Resume 2024.pdf" + + +app = FastAPI( + title="Alex Herlan Portfolio API", + description="JSON-backed content and contact delivery for Alex Herlan's portfolio.", + version="1.0.0", +) + +origins = [ + origin.strip() + for origin in os.getenv("FRONTEND_ORIGINS", "http://localhost:5173").split(",") + if origin.strip() +] +app.add_middleware( + CORSMiddleware, + allow_origins=origins, + allow_credentials=True, + allow_methods=["GET", "POST"], + allow_headers=["*"], +) + + +class ContactPayload(BaseModel): + name: str = Field(min_length=2, max_length=100) + email: EmailStr + subject: str = Field(min_length=3, max_length=160) + message: str = Field(min_length=20, max_length=5000) + company: str = Field(default="", max_length=200) + + +@lru_cache(maxsize=8) +def read_data(filename: str) -> Any: + path = DATA_DIR / filename + if not path.is_file(): + raise HTTPException(status_code=500, detail=f"Missing data file: {filename}") + return json.loads(path.read_text(encoding="utf-8")) + + +@app.get("/api/health") +def health() -> dict[str, str]: + return {"status": "ok"} + + +@app.get("/api/profile") +def profile() -> dict[str, Any]: + return read_data("profile.json") + + +@app.get("/api/experience") +def experience() -> list[dict[str, Any]]: + return read_data("experience.json") + + +@app.get("/api/skills") +def skills() -> dict[str, Any]: + return read_data("skills.json") + + +@app.get("/api/posts") +def posts( + q: str | None = Query(default=None, max_length=100), + tag: str | None = Query(default=None, max_length=50), +) -> list[dict[str, Any]]: + all_posts = read_data("posts.json") + query = q.casefold().strip() if q else None + requested_tag = tag.casefold().strip() if tag else None + + filtered: list[dict[str, Any]] = [] + for post in all_posts: + searchable = " ".join( + [post["title"], post["excerpt"], " ".join(post["tags"])] + ).casefold() + if query and query not in searchable: + continue + if requested_tag and requested_tag not in { + post_tag.casefold() for post_tag in post["tags"] + }: + continue + filtered.append({key: value for key, value in post.items() if key != "content"}) + + return sorted(filtered, key=lambda item: item["published_at"], reverse=True) + + +@app.get("/api/posts/{slug}") +def post_by_slug(slug: str) -> dict[str, Any]: + if not re.fullmatch(r"[a-z0-9-]+", slug): + raise HTTPException(status_code=404, detail="Post not found") + for post in read_data("posts.json"): + if post["slug"] == slug: + return post + raise HTTPException(status_code=404, detail="Post not found") + + +@app.get("/api/resume") +def resume() -> FileResponse: + if not RESUME_PATH.is_file(): + raise HTTPException(status_code=404, detail="Resume file not found") + return FileResponse( + RESUME_PATH, + media_type="application/pdf", + filename="Alexander-Herlan-Resume.pdf", + content_disposition_type="inline", + ) + + +def deliver_contact_email(payload: ContactPayload) -> None: + smtp_host = os.getenv("SMTP_HOST") + smtp_port = int(os.getenv("SMTP_PORT", "587")) + smtp_username = os.getenv("SMTP_USERNAME") + smtp_password = os.getenv("SMTP_PASSWORD") + from_email = os.getenv("SMTP_FROM_EMAIL") or smtp_username + to_email = os.getenv("CONTACT_TO_EMAIL", "alexwherlan@gmail.com") + use_tls = os.getenv("SMTP_USE_TLS", "true").casefold() == "true" + use_ssl = os.getenv("SMTP_USE_SSL", "false").casefold() == "true" + + if not smtp_host or not from_email: + raise RuntimeError("SMTP delivery is not configured") + + message = EmailMessage() + message["Subject"] = f"Portfolio inquiry: {payload.subject}" + message["From"] = from_email + message["To"] = to_email + message["Reply-To"] = str(payload.email) + message.set_content( + f"New portfolio inquiry\n\n" + f"From: {payload.name} <{payload.email}>\n" + f"Subject: {payload.subject}\n\n" + f"{payload.message}" + ) + + context = ssl.create_default_context() + smtp_class = smtplib.SMTP_SSL if use_ssl else smtplib.SMTP + with smtp_class(smtp_host, smtp_port, timeout=20) as client: + if use_tls and not use_ssl: + client.starttls(context=context) + if smtp_username and smtp_password: + client.login(smtp_username, smtp_password) + client.send_message(message) + + +@app.post("/api/contact", status_code=202) +async def contact(payload: ContactPayload) -> dict[str, str]: + # A filled hidden field is almost certainly an automated submission. Respond + # normally so bots do not learn how the trap works. + if payload.company: + return {"status": "accepted", "message": "Thanks — your note is on its way."} + + try: + await run_in_threadpool(deliver_contact_email, payload) + except (OSError, RuntimeError, smtplib.SMTPException) as exc: + raise HTTPException( + status_code=503, + detail="Email delivery is temporarily unavailable. Please email Alex directly.", + ) from exc + + return {"status": "accepted", "message": "Thanks — your note is on its way."} + + +if FRONTEND_DIST.is_dir(): + + @app.get("/{path:path}", include_in_schema=False) + def frontend(path: str) -> FileResponse: + requested_file = (FRONTEND_DIST / path).resolve() + try: + requested_file.relative_to(FRONTEND_DIST.resolve()) + except ValueError: + raise HTTPException(status_code=404, detail="Not found") + + if requested_file.is_file(): + return FileResponse(requested_file) + return FileResponse(FRONTEND_DIST / "index.html") + diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..3c71d24 --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,4 @@ +fastapi +uvicorn[standard] +email-validator + diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..ff0a08b --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,19 @@ + + + + + + + + + Alex Herlan — Software Engineer + + +
+ + + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..a9e1351 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,948 @@ +{ + "name": "alex-herlan-portfolio", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "alex-herlan-portfolio", + "version": "1.0.0", + "dependencies": { + "react": "^19.3.0", + "react-dom": "^19.3.0", + "react-router-dom": "^7.18.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.1.1", + "lightningcss-win32-x64-msvc": "^1.33.0", + "vite": "^8.3.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.149.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.149.0.tgz", + "integrity": "sha512-Efcc+iF0j3Bf67YjEqIqWXbX5XddXoK/Mw4K1/JuXwRCZ8N16VR7iT23nlCc9XrveFVh/E5Rqs2StT0V8v9LdA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/oxc-project" + } + }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.8.tgz", + "integrity": "sha512-tN5aztYkKCte4i5SIrrz5yK/HMjEuCqCSCJa418jOV8tZ1cBY3YF2otxB1ktPxzsLA1BeTqwapK0bfjxNvHJVw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.8.tgz", + "integrity": "sha512-dIYTWl9XprMUiQFoc55KUyk/oS8SKYH3zFl0LTR7RT0Xj4hgSVyuJcroH8JUu8RcpF8fTB6E0aOwCkZoYPcDSQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.8.tgz", + "integrity": "sha512-PCSDQGXD2IyTEFrcgPyBM8jJuGmrbCMuoIOXdbEGVemruKACXoLQJrb+A45Z0L5t1RQkdfJprAYPkikbh7dzdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.8.tgz", + "integrity": "sha512-Uk7lRsGhPFHVX/sAUC6D5H9Ol30dFHd6iquokll2th3LpdJ3F5CzQB+7DHn0Ri2mG+U7k2zXiPHDrwZenXhwSA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.8.tgz", + "integrity": "sha512-DjszaTEVogPqA5bYzsEeqDCQxbcp2fexQwKcRspYji2yzR68fCf+e4fx6kBSRDwX5/brZaHw/hWS9+A/+/w9sQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.8.tgz", + "integrity": "sha512-zmwa7FTmdzB6aaEEuuls18H6Ap5JmJPSoPTuXixeJZV6tG40SyLkApQtz1g8ptZtiEKqj9OM0oNLPh1AgvE31Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.8.tgz", + "integrity": "sha512-KdYQDPHwJVnbFwdTGMgxsI9SqblBlz6STGM+w1We/d5B8OWWidYH0MwkU/uA1wM5fIpO2MkOVxXrNzzuZhw9ew==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.8.tgz", + "integrity": "sha512-jFJTifHnNPY+yzOoNZQfSIysrVyXzEQPhPnOUjmD1bcQGHH6s7c8cViKWar8YplQImE5N9JRqMCLrM2CdxOrZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.8.tgz", + "integrity": "sha512-FhiOziBDWPBjbcmRzfLyIJnaP7AVMFXT7YCXPjXxj7wKU3vx24RjrCNN/zjvVa+N2vVoHJwCoUBvsrN/DG3zIA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.8.tgz", + "integrity": "sha512-WnHfADMzOV2Y55wlx1hzzQnar/wDt/VdvWSD99r18Mz9ylNieIGOkRx3UV21h7m/eJvjySYJkO26VvGNFkwsIQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.8.tgz", + "integrity": "sha512-H9tRr5ibfXFVLxbPOseVewewFpl28zcEdjRDt2FTUZU7odxP0gEv1ki4/kGmcGOh78oRwZuuQllGLZ9zTJp84g==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.8.tgz", + "integrity": "sha512-UefiqfM3D6IVNlZ8tSGs9+Ejjud2T+oxO0IHADU45Y+lyEjD2dVFyZHbkfX0LUb5Zugo/oIv1eCO/KVYhgYJYA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.8.tgz", + "integrity": "sha512-637Ke4kWSy6rp9cxQ9gMOXlxPgIw/c1beASV4M//3+9I4uwBVOOl74G+e3zyU3u19U7RkRl/HuewixZ/Z6+Rjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.8.tgz", + "integrity": "sha512-xWBkPOF1Q9k/Gv1nQXnVdLxKu74jXppuOM4Z3mnypVUJJJwLsMl7hNJGRAUJoG8A5MgOI1ACKM+wBFxSJzKy4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.8.tgz", + "integrity": "sha512-uz2ZvfgXbxqNwijjjbxrnvALwpyODDcgc1T1N8N3rf/DXKQmaFwmB4LX4yyjggpwN2obdQLb2rgirX5ffCWYng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.1.tgz", + "integrity": "sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "oxc-transform-react": "^0.145.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "oxc-transform-react": { + "optional": true + } + } + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/nanoid": { + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.18", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", + "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", + "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.28.0" + }, + "peerDependencies": { + "react": "^19.3.0" + } + }, + "node_modules/react-router": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.3.tgz", + "integrity": "sha512-gyXgtdr5uACJ5b1Q4udzjVV+tb/rlHIMJKuJ0e89R4Kzgz47z/rgP0dIKxktqIEUhDHluGTPJJH/wRha7CyqsA==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.3.tgz", + "integrity": "sha512-ytVbyBBM7vMfRCam25r0WMhSVSom909A8p+8m0/f1w853dz/xfFu6etAT2SEbVoSnI+ZoPRDqIsQXVT89gp7kg==", + "license": "MIT", + "dependencies": { + "react-router": "7.18.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/rolldown": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.8.tgz", + "integrity": "sha512-Z67nTmhZe7anqnM/EjI392w5i/ANUinjip7QYsOyN37oayduxt3ksdX0hf5OOamkAd53BiIHfbfSzfUmzKFQqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.149.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm-eabi": "1.2.8", + "@rolldown/binding-android-arm64": "1.2.8", + "@rolldown/binding-darwin-arm64": "1.2.8", + "@rolldown/binding-darwin-x64": "1.2.8", + "@rolldown/binding-freebsd-x64": "1.2.8", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.8", + "@rolldown/binding-linux-arm64-gnu": "1.2.8", + "@rolldown/binding-linux-arm64-musl": "1.2.8", + "@rolldown/binding-linux-ppc64-gnu": "1.2.8", + "@rolldown/binding-linux-s390x-gnu": "1.2.8", + "@rolldown/binding-linux-x64-gnu": "1.2.8", + "@rolldown/binding-linux-x64-musl": "1.2.8", + "@rolldown/binding-openharmony-arm64": "1.2.8", + "@rolldown/binding-win32-arm64-msvc": "1.2.8", + "@rolldown/binding-win32-x64-msvc": "1.2.8" + } + }, + "node_modules/scheduler": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.28.0.tgz", + "integrity": "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==", + "license": "MIT" + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/vite": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.0.tgz", + "integrity": "sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.7", + "postcss": "^8.5.28", + "rolldown": "~1.2.6", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.7.1", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..5154161 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,21 @@ +{ + "name": "alex-herlan-portfolio", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.3.0", + "react-dom": "^19.3.0", + "react-router-dom": "^7.18.3" + }, + "devDependencies": { + "@vitejs/plugin-react": "^6.1.1", + "lightningcss-win32-x64-msvc": "^1.33.0", + "vite": "^8.3.0" + } +} diff --git a/frontend/public/alexander-herlan.png b/frontend/public/alexander-herlan.png new file mode 100644 index 0000000000000000000000000000000000000000..3780b8a60423d25f583e0b7297a872417a979306 GIT binary patch literal 208219 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 `XJ)4sOhOEp>a4@I-qj`P==MDUbZWa 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
+
+ + AH + {name} + + + + + +
+
+ ); +} + +function Footer({ name }) { + const now = new Date(); + const monthAndYear = new Intl.DateTimeFormat("en-US", { + month: "short", + year: "numeric", + }).format(now); + + return ( +
+
+

© {now.getFullYear()} · All rights reserved · {monthAndYear}

+

+ {name} +

+
+
+ ); +} + +export default function Layout({ children, profile }) { + const location = useLocation(); + const name = profile?.display_name ?? "Alex Herlan"; + const isAbout = location.pathname === "/"; + + return ( +
+ Skip to content +
+
+ {children} +
+
+
+ ); +} diff --git a/frontend/src/components/PageHeader.jsx b/frontend/src/components/PageHeader.jsx new file mode 100644 index 0000000..7e0d2d1 --- /dev/null +++ b/frontend/src/components/PageHeader.jsx @@ -0,0 +1,13 @@ +export default function PageHeader({ eyebrow, title, description, aside }) { + return ( +
+
+

{eyebrow}

+

{title}

+ {description &&

{description}

} +
+ {aside &&
{aside}
} +
+ ); +} + diff --git a/frontend/src/components/Status.jsx b/frontend/src/components/Status.jsx new file mode 100644 index 0000000..b6f513b --- /dev/null +++ b/frontend/src/components/Status.jsx @@ -0,0 +1,21 @@ +export function LoadingState({ label = "Loading" }) { + return ( +
+
+ ); +} + +export function ErrorState({ message }) { + return ( +
+ ! +
+ That didn’t load. +

{message}

+
+
+ ); +} + diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx new file mode 100644 index 0000000..b7bab90 --- /dev/null +++ b/frontend/src/main.jsx @@ -0,0 +1,14 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import { BrowserRouter } from "react-router-dom"; +import App from "./App"; +import "./styles.css"; + +createRoot(document.getElementById("root")).render( + + + + + , +); + diff --git a/frontend/src/pages/AboutPage.jsx b/frontend/src/pages/AboutPage.jsx new file mode 100644 index 0000000..d8803a3 --- /dev/null +++ b/frontend/src/pages/AboutPage.jsx @@ -0,0 +1,70 @@ +import Icon from "../components/Icon"; +import { ErrorState, LoadingState } from "../components/Status"; + +export default function AboutPage({ profile, error }) { + if (error) { + return ( +
+ +
+ ); + } + + if (!profile) { + return ( +
+ +
+ ); + } + + return ( +
+
+

+ + {profile.eyebrow} +

+

+ Hello, I’m {profile.display_name}. +

+

{profile.headline}

+

{profile.summary}

+ + + +
+ {profile.focus.map((item) => ( + {item} + ))} +
+
+ +
+
+
+
+ {`${profile.name}, +
+
+ 27+ + years building
with technology
+
+
+ + {profile.availability} +
+
+
+ ); +} + diff --git a/frontend/src/pages/BlogPage.jsx b/frontend/src/pages/BlogPage.jsx new file mode 100644 index 0000000..fef6def --- /dev/null +++ b/frontend/src/pages/BlogPage.jsx @@ -0,0 +1,132 @@ +import { useEffect, useMemo, useState } from "react"; +import { Link } from "react-router-dom"; +import { getPosts } from "../api"; +import Icon from "../components/Icon"; +import PageHeader from "../components/PageHeader"; +import { ErrorState, LoadingState } from "../components/Status"; + +function formatDate(date) { + return new Intl.DateTimeFormat("en-US", { + month: "short", + day: "numeric", + year: "numeric", + }).format(new Date(`${date}T12:00:00`)); +} + +function PostCard({ post, featured }) { + return ( +
+ + +
+
+ {formatDate(post.published_at)} + {post.read_time} min read +
+

{post.title}

+

{post.excerpt}

+
+
+ {post.tags.slice(0, 2).map((tag) => {tag})} +
+ +
+
+ +
+ ); +} + +export default function BlogPage() { + const [posts, setPosts] = useState([]); + const [query, setQuery] = useState(""); + const [activeTag, setActiveTag] = useState("All"); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(""); + + useEffect(() => { + const controller = new AbortController(); + getPosts(controller.signal) + .then(setPosts) + .catch((requestError) => { + if (requestError.name !== "AbortError") setError(requestError.message); + }) + .finally(() => setLoading(false)); + return () => controller.abort(); + }, []); + + const tags = useMemo(() => { + const counts = new Map(); + posts.flatMap((post) => post.tags).forEach((tag) => counts.set(tag, (counts.get(tag) ?? 0) + 1)); + return ["All", ...[...counts.entries()].sort((a, b) => b[1] - a[1]).slice(0, 6).map(([tag]) => tag)]; + }, [posts]); + + const filteredPosts = useMemo(() => { + const needle = query.trim().toLowerCase(); + return posts.filter((post) => { + const matchesTag = activeTag === "All" || post.tags.includes(activeTag); + const matchesQuery = !needle || `${post.title} ${post.excerpt} ${post.tags.join(" ")}`.toLowerCase().includes(needle); + return matchesTag && matchesQuery; + }); + }, [activeTag, posts, query]); + + return ( +
+ {posts.length || 10}field notes

} + /> + +
+ +
+ {tags.map((tag) => ( + + ))} +
+
+ + {loading && } + {error && } + + {!loading && !error && filteredPosts.length > 0 && ( +
+ {filteredPosts.map((post, index) => ( + + ))} +
+ )} + + {!loading && !error && filteredPosts.length === 0 && ( +
+ +

No notes found

+

Try a different phrase or topic.

+
+ )} +
+ ); +} + diff --git a/frontend/src/pages/BlogPostPage.jsx b/frontend/src/pages/BlogPostPage.jsx new file mode 100644 index 0000000..32a546e --- /dev/null +++ b/frontend/src/pages/BlogPostPage.jsx @@ -0,0 +1,75 @@ +import { useEffect, useState } from "react"; +import { Link, useParams } from "react-router-dom"; +import { getPost } from "../api"; +import Icon from "../components/Icon"; +import { ErrorState, LoadingState } from "../components/Status"; + +function formatDate(date) { + return new Intl.DateTimeFormat("en-US", { + month: "long", + day: "numeric", + year: "numeric", + }).format(new Date(`${date}T12:00:00`)); +} + +export default function BlogPostPage() { + const { slug } = useParams(); + const [post, setPost] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(""); + + useEffect(() => { + const controller = new AbortController(); + setLoading(true); + getPost(slug, controller.signal) + .then(setPost) + .catch((requestError) => { + if (requestError.name !== "AbortError") setError(requestError.message); + }) + .finally(() => setLoading(false)); + return () => controller.abort(); + }, [slug]); + + if (loading) { + return
; + } + + if (error) { + return
; + } + + return ( +
+
+ +
+ Back to journal +
+ {post.tags.map((tag) => {tag})} +
+

{post.title}

+

{post.excerpt}

+
+ AH + Alex Herlan{formatDate(post.published_at)} · {post.read_time} min read +
+
+
+ +
+ {post.content.map((section) => ( +
+

{section.heading}

+ {section.paragraphs.map((paragraph) =>

{paragraph}

)} +
+ ))} +
+ +

Thanks for reading.

+ Continue the conversation +
+
+
+ ); +} + diff --git a/frontend/src/pages/ContactPage.jsx b/frontend/src/pages/ContactPage.jsx new file mode 100644 index 0000000..4cd0e32 --- /dev/null +++ b/frontend/src/pages/ContactPage.jsx @@ -0,0 +1,142 @@ +import { useState } from "react"; +import { sendContactMessage } from "../api"; +import Icon from "../components/Icon"; +import PageHeader from "../components/PageHeader"; + +const initialForm = { + name: "", + email: "", + subject: "", + message: "", + company: "", +}; + +export default function ContactPage({ profile, error }) { + const [form, setForm] = useState(initialForm); + const [status, setStatus] = useState({ type: "idle", message: "" }); + + function updateField(event) { + setForm((current) => ({ ...current, [event.target.name]: event.target.value })); + } + + async function submitForm(event) { + event.preventDefault(); + setStatus({ type: "sending", message: "Sending your note…" }); + try { + const result = await sendContactMessage(form); + setStatus({ type: "success", message: result.message }); + setForm(initialForm); + } catch (requestError) { + setStatus({ type: "error", message: requestError.message }); + } + } + + const socials = profile?.socials ?? []; + + return ( +
+ Usually replies within 1–2 days} + /> + +
+
+
+ + +
+ + + +

6RZ{~>G2t97&WTxud3iD8R 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 %J1;U_c_H?vGRGN2MwcNUJu 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 { + window.scrollTo({ top: 0, behavior: "instant" }); + }, [pathname]); + + return null; +} + +export default function App() { + const [profile, setProfile] = useState(null); + const [profileError, setProfileError] = useState(""); + + useEffect(() => { + const controller = new AbortController(); + getProfile(controller.signal) + .then(setProfile) + .catch((error) => { + if (error.name !== "AbortError") setProfileError(error.message); + }); + return () => controller.abort(); + }, []); + + return ( + + + + } + /> + } /> + } /> + } /> + } /> + } + /> + } /> + + + ); +} + diff --git a/frontend/src/api.js b/frontend/src/api.js new file mode 100644 index 0000000..54503b0 --- /dev/null +++ b/frontend/src/api.js @@ -0,0 +1,36 @@ +const API_BASE = import.meta.env.VITE_API_BASE_URL ?? ""; + +async function request(path, options = {}) { + const response = await fetch(`${API_BASE}${path}`, { + ...options, + headers: { + "Content-Type": "application/json", + ...options.headers, + }, + }); + + if (!response.ok) { + let detail = "Something went wrong. Please try again."; + try { + const body = await response.json(); + detail = body.detail ?? detail; + } catch { + // Keep the friendly fallback when a proxy or server returns non-JSON. + } + throw new Error(detail); + } + + return response.json(); +} + +export const getProfile = (signal) => request("/api/profile", { signal }); +export const getExperience = (signal) => request("/api/experience", { signal }); +export const getSkills = (signal) => request("/api/skills", { signal }); +export const getPosts = (signal) => request("/api/posts", { signal }); +export const getPost = (slug, signal) => request(`/api/posts/${slug}`, { signal }); +export const sendContactMessage = (payload) => + request("/api/contact", { + method: "POST", + body: JSON.stringify(payload), + }); + diff --git a/frontend/src/components/Icon.jsx b/frontend/src/components/Icon.jsx new file mode 100644 index 0000000..8263fc5 --- /dev/null +++ b/frontend/src/components/Icon.jsx @@ -0,0 +1,54 @@ +const paths = { + arrow: , + arrowLeft: , + arrowUpRight: , + calendar: ( + <> + + + + ), + check: , + chevron: , + close: , + code: , + email: ( + <> + + + + ), + github: ( + + ), + linkedin: ( + <> + + + + ), + menu: , + search: , + send: , + spark: , +}; + +export default function Icon({ name, size = 20, className = "" }) { + return ( + + ); +} + diff --git a/frontend/src/components/Layout.jsx b/frontend/src/components/Layout.jsx new file mode 100644 index 0000000..c5cf243 --- /dev/null +++ b/frontend/src/components/Layout.jsx @@ -0,0 +1,88 @@ +import { useEffect, useState } from "react"; +import { NavLink, useLocation } from "react-router-dom"; +import Icon from "./Icon"; + +const navItems = [ + { label: "About", to: "/" }, + { label: "Experience", to: "/experience" }, + { label: "Skills", to: "/skills" }, + { label: "Journal", to: "/blog" }, + { label: "Contact", to: "/contact" }, +]; + +function Header({ name }) { + const [menuOpen, setMenuOpen] = useState(false); + const location = useLocation(); + + useEffect(() => setMenuOpen(false), [location.pathname]); + + return ( +