Welcome to the source code for my personal portfolio website, built to showcase my data science work, technical projects, and professional experience. The site features a modern frontend with a custom backend, designed for interactivity, modularity, and easy updates which is hosted on a raspberry pi. Live Site: chrisapton.github.io
-
Homepage/About: Introduction and personal summary with a profile image.
-
Projects: Dynamic project cards populated from GitHub, including repository descriptions, skills, and date ranges.
-
Experience: Timeline of relevant professional roles and internships, with descriptions and achievements.
-
Responsive Design: Works across desktop and mobile, leveraging Tailwind CSS for clean styling.
-
Resume Download: PDF resume is available for download.
-
Backend Integration:
- Custom Python backend handles dynamic content such as GitHub repo info, LinkedIn data scraping, and project list updates.
- Scheduled or on-demand updates for project data and resume download via backend scripts.
-
Deployment: Frontend hosted with GitHub Pages and automated deployment scripts. Backend hosted on a raspberry pi.
Frontend:
- React.js (see
frontend/) - Tailwind CSS
- HTML5 & JavaScript
Backend:
- Python (see
pi_backend/) - Flask API (for serving data, e.g. GitHub/LinkedIn info)
- Jupyter Notebook (analysis/testing utilities)
- Web scraping utilities (LinkedIn/project data)
.
├── my-website/
│ ├── frontend/
│ │ ├── build/ # Production build files
│ │ ├── public/ # Static files (favicon, assets)
│ │ ├── src/ # React source code
│ │ ├── package.json # Frontend dependencies
│ │ └── tailwind.config.js # Tailwind CSS config
│ ├── pi_backend/
│ │ ├── app.py # Flask backend/API
│ │ ├── linkedin_scraper/ # Scraper modules
│ │ ├── github_repo_updater.py # GitHub integration
│ │ └── requirements.txt # Backend Python requirements
│ ├── Resume.pdf # Downloadable resume
│ ├── index.html, 404.html # Static entry points
│ ├── deploy.sh # Deploy script for GitHub Pages
│ └── static/ # Static website assets
└── ...
Frontend:
-
Navigate to
my-website/frontend/. -
Install dependencies:
npm install
-
Start the development server:
npm start
The site will be available at
http://localhost:3000.
Backend:
-
Navigate to
my-website/pi_backend/. -
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Python dependencies:
pip install -r requirements.txt
-
Start the backend server:
python app.py
The backend will be available at
http://localhost:5000.
- Static Site: The main site is deployed using GitHub Pages and can be updated using the
deploy.shscript. - Backend: The backend is used for local or private automation tasks (e.g., scraping/updating project data).
MIT License. See LICENSE for details.