Welcome to my portfolio! This project is built with React and Next.js, showcasing my skills and projects.
This portfolio is a representation of my work and abilities as a developer. It includes a collection of projects that highlight my skills and experiences. You can find information about my experiences, a list of the technologies I work with, and links to my projects.
- Responsive design that works on mobile and desktop
- Smooth navigation between sections
- Interactive project showcase with detailed descriptions
- Next.js - A React framework for building server-side rendered applications
- React - A JavaScript library for building user interfaces
- CSS Modules - For styling components
- Node.js - For the server-side
- My home server - For hosting the portfolio
To get a local copy of this portfolio up and running, follow these steps:
- Clone the repository:
git clone https://github.com/Strange500/nextPortfolio.git cd nextPortfolio - Install the dependencies:
npm install
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser
By default, project information is loaded from data/projects.json. You can specify a custom projects file using the PROJECTS_FILE_PATH environment variable:
# Use a custom projects file
PROJECTS_FILE_PATH=path/to/your/projects.json npm run build
# Or in development
PROJECTS_FILE_PATH=path/to/your/projects.json npm run devThe projects JSON file should follow this structure:
[
{
"order": 1,
"title": "Project Name",
"description": "Project description",
"tags": ["Tag1", "Tag2"],
"links": ["https://github.com/user/repo"],
"readme": "https://raw.githubusercontent.com/user/repo/main/README.md"
}
]Path Support: The PROJECTS_FILE_PATH environment variable supports both relative and absolute paths:
- Relative paths (e.g.,
custom/projects.json) are resolved from the project root - Absolute paths (e.g.,
/opt/data/projects.json) allow loading files from anywhere on the system
Error Handling: If the specified file doesn't exist, contains invalid JSON, or is empty, the application will gracefully fall back to the default projects (same as data/projects.json) and log appropriate error messages. This ensures the portfolio always displays content even when custom project files have issues.
To deploy this portfolio with Docker, follow these steps:
- Build the Docker image:
docker build -t next-portfolio . - Run the Docker container:
docker run -d -p 3000:3000 next-portfolio
- Open http://localhost:3000 in your browser
