Welcome to my React Front-End Developer Portfolio! This project showcases my skills as a front-end developer, featuring a beautifully crafted portfolio site built with the latest web technologies.
I designed this portfolio from scratch in Figma and brought it to life using Next.js with Server-Side Rendering (SSR) for optimal performance. The project is styled using Sass to ensure a clean and maintainable codebase.
- π‘ Stunning Landing Page: A captivating homepage that introduces who I am and what I do.
- π Blog Subpage: Dedicated to web design topics, where I share insights and tips.
- π Ebook Get Page: A special section where users can download my ebook, complete with a form and user authentication.
- π Authentication: Secure login and registration to access exclusive content.
- Framework: Next.js (React-based framework with SSR)
- Design: Figma (Designed from scratch)
- Styling: Sass (CSS with superpowers)
- Authentication: Custom authentication logic with session management
-
Clone this repository:
git clone https://github.com/ol1mowski/Portfolio.dev.git cd Portfolio.dev -
Install dependencies:
npm install
-
Add env file like .env.example
-
Run the development server:
npm run dev
-
Open in your browser:
Visit
http://localhost:3000to see the portfolio in action.
The design was carefully crafted in Figma, with a focus on modern web design principles. It reflects my passion for creating intuitive and visually appealing user interfaces.
The Blog subpage offers valuable content on web design, keeping you updated with the latest trends and best practices. On the Ebook Get Page, users can download my ebook by filling out a form, secured by an authentication system.
Check out the live version of my portfolio here.
I'm always open to contributions! Feel free to fork this project and submit pull requests. If you encounter any issues, please open an issue in this repository.
Feel free to reach out if you have any questions or feedback. Connect with me on LinkedIn.
If you like this project, please give it a βοΈ on GitHubβit means a lot!
The project uses established naming conventions to help maintain consistency and code readability. Detailed information can be found in the naming conventions documentation.
To perform migration to the new conventions, you can use the scripts:
scripts/migrate-to-conventions.ps1- for changing file and directory namesscripts/update-imports.ps1- for updating imports
The project is configured to run in a Docker environment. Below are instructions for running the application in containers.
- Docker
- Docker Compose
-
Clone the repository:
git clone https://github.com/ol1mowski/Portfolio.dev.git cd Portfolio.dev -
Create a
.envfile in the main project directory with appropriate environment variables:DB_URL=mongodb://mongo:27017/portfolio JWT_SECRET=your_jwt_secret_key NEXT_PUBLIC_BASE_URL=http://localhost:3000 -
Build and run the containers:
docker-compose up -d
-
The application will be available at: http://localhost:3000
docker-compose downdocker-compose logs -f-
Rebuilding the application:
docker-compose build --no-cache
-
Removing all data (volumes):
docker-compose down -v
The project uses a multi-stage build process:
- base - base image with Node.js
- deps - dependency installation
- builder - building the Next.js application
- runner - final image containing only necessary files
This structure provides minimal final image size and enhances security by using an unprivileged user.
The project utilizes GitHub Actions to automate the testing, building, and deployment processes.
-
CI/CD Pipeline - the main pipeline that:
- Runs code linting
- Performs unit tests
- Runs end-to-end tests
- Builds and publishes a Docker image
- Deploys the application to the production server (only for main/master branches)
-
Docker Build - builds and publishes a Docker image when Docker-related files change
-
Preview Deployment - creates a preview environment for pull requests
For the workflows to function properly, the following secrets need to be configured in the GitHub repository:
DOCKER_USERNAME- Docker Hub usernameDOCKER_PASSWORD- Docker Hub password/tokenSSH_HOST- production server IP addressSSH_USERNAME- server usernameSSH_PRIVATE_KEY- SSH private key for connecting to the serverDB_URL- MongoDB database URLJWT_SECRET- secret key for signing JWT tokensNEXT_PUBLIC_BASE_URL- public URL of the applicationVERCEL_TOKEN,VERCEL_ORG_ID,VERCEL_PROJECT_ID- needed for Vercel deployments
