|
1 | | -# Portfolio Website - Ronan Roberts |
| 1 | +# Ronan Roberts - Portfolio |
2 | 2 |
|
3 | | -A responsive, professional portfolio website designed to showcase software engineering projects, technical skills, and professional experience. The site features a modern dark-themed UI and is built for deployment on GitHub Pages. |
| 3 | +Personal portfolio site. Built with Astro + React islands, deployed to GitHub Pages. |
4 | 4 |
|
5 | | -## Live Demo |
| 5 | +## Stack |
6 | 6 |
|
7 | | -https://ronan-r-r.github.io |
| 7 | +- Astro 4 (static output) |
| 8 | +- React 18 (islands only: 3D hero, contact form) |
| 9 | +- React Three Fiber + Three.js (WebGL hero, desktop only) |
| 10 | +- GSAP + Lenis (scroll animations, smooth scroll) |
| 11 | +- Tailwind CSS 3 |
| 12 | +- Fontsource Variable (Inter + Space Grotesk, self-hosted via npm) |
| 13 | +- FormSubmit.co (contact form, no backend) |
8 | 14 |
|
9 | | -## Features |
| 15 | +## Local dev |
10 | 16 |
|
11 | | -- **Responsive Design:** Fully adaptive layout that works on mobile, tablet, and desktop devices. |
12 | | -- **Modern UI:** Dark mode aesthetic using CSS variables for consistent theming. |
13 | | -- **Project Showcase:** Grid layout to display featured projects with technology tags. |
14 | | -- **Experience Timeline:** Vertical timeline displaying career history and education. |
15 | | -- **Functional Contact Form:** Integrated with FormSubmit.co for serverless email handling via AJAX. |
16 | | -- **Smooth Navigation:** Sticky header with smooth scrolling to section anchors. |
| 17 | +``` |
| 18 | +npm install |
| 19 | +npm run dev |
| 20 | +``` |
17 | 21 |
|
18 | | -## Technologies Used |
| 22 | +## Build |
19 | 23 |
|
20 | | -- **HTML5:** Semantic markup structure. |
21 | | -- **CSS3:** Flexbox, CSS Grid, Media Queries, and CSS Variables. |
22 | | -- **JavaScript:** DOM manipulation, Mobile Menu toggling, and Fetch API for the contact form. |
23 | | -- **Font Awesome:** Iconography. |
24 | | -- **Google Fonts:** Typography (Inter font family). |
| 24 | +``` |
| 25 | +npm run build |
| 26 | +npm run preview |
| 27 | +``` |
25 | 28 |
|
26 | | -## Installation and Local Setup |
| 29 | +## Deploy |
27 | 30 |
|
28 | | -1. Clone the repository: |
29 | | - git clone https://github.com/Ronan-R-R/Ronan-R-R.github.io.git |
| 31 | +Pushes to `main` trigger the GitHub Actions workflow at `.github/workflows/deploy.yml`, which builds Astro and deploys the `dist/` output to GitHub Pages. |
30 | 32 |
|
31 | | -2. Navigate to the project directory: |
32 | | - cd Ronan-R-R.github.io |
| 33 | +One-time setup: go to **Settings > Pages**, set **Source** to **GitHub Actions**. |
33 | 34 |
|
34 | | -3. Open the index.html file in your preferred web browser to view the site locally. |
| 35 | +## Adding a project |
35 | 36 |
|
36 | | -## Configuration |
| 37 | +Edit `src/components/ProjectsSection.astro`. Add an entry to the `projects` array at the top of the file. Drop a preview image (AVIF/WebP/SVG preferred) into `public/images/` and reference it in the `image` field. |
37 | 38 |
|
38 | | -### Contact Form |
39 | | -The contact form uses FormSubmit.co to send emails without a backend server. |
| 39 | +## Replacing placeholder images |
40 | 40 |
|
41 | | -1. In index.html, the fetch URL is set to: https://formsubmit.co |
42 | | -2. When the first submission occurs, FormSubmit will send an activation email to the address specified. |
43 | | -3. You must click "Activate" in that email for the form to start forwarding messages to your inbox. |
| 41 | +The four placeholder SVGs in `public/images/` are branded stand-ins. Replace them with real screenshots named identically: |
44 | 42 |
|
45 | | -### Icons |
46 | | -The site uses Font Awesome CDN. If icons do not load, ensure you have an active internet connection or update the CDN link in the head tag. |
| 43 | +- `echo-software.svg` (or `.avif`, `.webp`) |
| 44 | +- `ffp.svg` |
| 45 | +- `portfolio-app.svg` |
| 46 | +- `skycast.svg` |
47 | 47 |
|
48 | | -## Deployment |
| 48 | +If you switch to AVIF/WebP, update the `src` paths in `ProjectsSection.astro`. |
49 | 49 |
|
50 | | -This project is designed to be hosted on GitHub Pages. |
| 50 | +## Contact form |
51 | 51 |
|
52 | | -1. Push the index.html file to your repository (main branch). |
53 | | -2. Go to Repository Settings > Pages. |
54 | | -3. Under "Build and deployment", select "Deploy from a branch". |
55 | | -4. Select "main" as the branch and "/" as the folder. |
56 | | -5. Click Save. |
| 52 | +FormSubmit.co delivers messages to `ronanr2003@gmail.com`. The first submission after a fresh activation will trigger a confirmation email from FormSubmit - click Activate to start receiving messages. |
57 | 53 |
|
58 | | -## License |
| 54 | +## Live site |
59 | 55 |
|
60 | | -This project is open source and available for personal use and modification. |
| 56 | +https://ronan-r-r.github.io |
0 commit comments