My Portfolio
URL: https://joshashton.dev
Core technologies are React and Node.js, using swiper as well.
See:
- https://react.dev/learn
- https://nodejs.org/en/learn/getting-started/introduction-to-nodejs
- https://swiperjs.com/react
Documentation
Setup
Development Environment
```
git clone https://github.com/quaxlyqueen/portfolio
cd portfolio
npm install
node src/server.js &
npm start
```
Production Environment
```
git clone https://github.com/quaxlyqueen/portfolio
cd portfolio
npm run build
cd dist
node ../src/server.js &
serve -s
```
Project structure
- `/main.jsx` is the root and router.
- `/App.jsx` is the primary page of my portfolio, and currently contains all application data. New projects are added here.
- `/Home.jsx`, `/Projects.jsx`, and `/Contact.jsx` are pages (or slides) of `/App.jsx`.
- `/components/*` are the components used to build the pages.
Styling guidelines:
Colorscheme data:
Purple
```
--dark-0: #170123;
--dark-1: #39124e;
--dark-2: #5e3276;
--dark-3: #84509f;
--primary: #4a245e;
--accent-1: #9e75a8;
--accent-2: #c69bca;
--text: #EBD2FF;
```
Green
```
--dark-0: #091A19;
--dark-1: #10211E;
--dark-2: #162722;
--dark-3: #1C2E26;
--primary-1: #304334;
--primary: #6B825C;
--accent-0: #90D889;
--accent-1: #8FC973;
--accent-2: #B8DAA6;
--text: #E0EAD9;
```
TODO
Features
- [x] Refactor and reorder the HTML & CSS. (v.0.0.1)
- [x] Template HTML blocks for repeated components. (v.0.0.1)
- [x] Contact page. (v.0.0.1)
- [x] Proper 404 page (v.0.0.1)
- [x] Resume page (HTML and PDF options). (v.0.0.1)
- [x] Make resume 1 page (v.0.0.1)
- [X] CI/CD (v.0.0.2)
- [ ] Security:
- [ ] Separate user for self-hosting, with reduced permissions. (v.0.0.1)
- [ ] Dockerize (v.0.0.1)
Future Features:
- [ ] .down-indicator popup text on hover, "scroll down to see my projects!"
- [ ] Rewrite CSS into components/modules (v.0.0.2)
- [ ] Read in data for portfolio a plain text files. (v.0.0.2)
- [ ] Script to easily add new projects. (v.0.0.2)
- [ ] Demo's of various projects. (embed Java Swing app or Flutter app directly into portfolio). (v.0.0.2)
- [ ] Blog page. (v.0.0.3)
- [ ] Convert SLCC e-portfolio to my own website (v.0.0.4)
Bugs:
- [ ] /Home.jsx, Profile picture animation is slightly cutoff on mobile. (v.0.0.2)
- [X] /Projects.jsx, More prominent slide indicator for projects (or n/10 counter, or some similar solution). (v.0.0.2)
- [x] /Projects.jsx, Alignment of project card on mobile. (v.0.0.1)
- [ ] /Projects.jsx, cursor icon when hover on the slide buttons should be a pointer, not highlighter.
- [ ] /Contact.jsx, handle blank and spam inputs
- [ ] /Contact.jsx, Contact form submission centers entire section. (v.0.0.2)
- [ ] /ErrorPage.jsx, stylize the error page.
- [x] /Resume.jsx, PDF viewer width is constant, doesn't respond to resizing (or setting the width in CSS). (v.0.0.1)
- [x] /components/SkillCard.jsx, Add state to skill accordions for mobile. (v.0.0.1)
- [x] /main.css, Breathing animation of background gradient stopped. (v.0.0.1)