Skip to content

Commit ff1f5b4

Browse files
authored
Release v1.5.0 – Portfolio Polish & Project Section Tweak
feat: custom pinned projects with detailed pages and JSON data structure
2 parents 347542b + cc76593 commit ff1f5b4

31 files changed

Lines changed: 1379 additions & 312 deletions

.env example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ NEXT_PUBLIC_LOCAL_BACKEND_URL=http://localhost:8000/api/github
33
NEXT_PUBLIC_FORMSPREE_FORM_ID=your-formspree-form-id
44
NEXT_PUBLIC_TURNSTILE_SITE_KEY=your-turnstile-site-key
55
NEXT_PUBLIC_EMAIL=your@email.com
6+
NEXT_PUBLIC_UPI_ID=your_name@upi

.github/workflows/nextjs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
NEXT_PUBLIC_FORMSPREE_FORM_ID: ${{ secrets.FORMSPREE_FORM_ID }}
1919
NEXT_PUBLIC_TURNSTILE_SITE_KEY: ${{ secrets.TURNSTILE_SITE_KEY }}
2020
NEXT_PUBLIC_EMAIL: ${{ secrets.EMAIL }}
21+
NEXT_PUBLIC_UPI_ID: ${{ secrets.UPI_ID }}
2122
steps:
2223
- name: Checkout
2324
uses: actions/checkout@v4

README.md

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# 🧑‍💻 Portfolio Website
22

3-
This is my personal developer portfolio built using **Next.js**, styled with **Tailwind CSS**, and integrated with a dynamic GitHub API backend.
3+
Welcome to my personal portfolio — a fast, minimal, and modern site built with **Next.js**, styled using **Tailwind CSS**, and powered by a custom **GitHub API backend**.
44

5-
---
5+
🔗 **Live Preview**: [amitminer.github.io](https://amitminer.github.io/)
6+
📁 **Backend Repo**: [github-api-backend](https://github.com/amitxd75/github-api-backend)
67

78
## 🚀 Quick Start
89

910
### 1. Clone & Install Dependencies
1011

1112
```bash
12-
git clone [https://github.com/amitminer/amitminer.github.io.git](https://github.com/amitminer/amitminer.github.io.git)
13+
git clone https://github.com/Amitminer/amitminer.github.io.git
1314
cd amitminer.github.io
1415
pnpm install
1516
```
16-
1717
### 2. Set Up Environment Variables
1818

1919
Create the `.env.local` file:
@@ -24,25 +24,25 @@ cp .env.example .env.local
2424

2525
Then edit `.env.local` with your values. See the [Environment Variables](#environment-variables) section below for the complete list of required variables.
2626

27-
-----
27+
---
2828

2929
### 3. Backend Setup (Required)
3030

3131
> 📦 GitHub Stats & Projects require a backend API.
3232
3333
To enable dynamic GitHub stats and repositories:
3434

35-
1. Clone the backend repo:
36-
👉 https://github.com/amitxd75/github-api-backend
35+
1. Clone the backend repo:
36+
👉 [https://github.com/amitxd75/github-api-backend](https://github.com/amitxd75/github-api-backend)
3737

38-
2. Follow its `README.md` to deploy it:
38+
2. Follow its `README.md` to deploy it:
3939

40-
* Locally (for dev)
41-
* Or via Netlify Functions (recommended)
40+
* Locally (for dev)
41+
* Or via Netlify Functions (recommended)
4242

4343
Once deployed, use that backend URL as `NEXT_PUBLIC_BACKEND_URL` in `.env.local`.
4444

45-
-----
45+
---
4646

4747
### 4. Run Development Server
4848

@@ -51,13 +51,13 @@ pnpm dev
5151
```
5252

5353
Visit your local site at:
54-
📍 http://localhost:3000
54+
📍 [http://localhost:3000](http://localhost:3000)
5555

56-
-----
56+
---
5757

58-
## Environment Variables
58+
## 🌐 Environment Variables
5959

60-
Create a `.env` file in the root directory with the following variables:
60+
Create a `.env.local` file in the root directory with the following variables:
6161

6262
```env
6363
# Backend API URLs
@@ -72,28 +72,39 @@ NEXT_PUBLIC_FORMSPREE_FORM_ID=
7272
7373
# Cloudflare Turnstile Site Key for anti-spam protection
7474
NEXT_PUBLIC_TURNSTILE_SITE_KEY=
75+
76+
# UPI ID for support/donations
77+
NEXT_PUBLIC_UPI_ID=your_name@upi
7578
```
7679

80+
---
81+
7782
## 📡 API Backend
7883

7984
Backend Repo → [github-api-backend](https://github.com/amitxd75/github-api-backend)
8085
Set it up properly, deploy to your server or Netlify, and configure `NEXT_PUBLIC_BACKEND_URL` in `.env.local`.
8186

8287
This enables real-time GitHub stats, repo data, and caching.
8388

84-
## 🚀 Docker
89+
---
90+
91+
## 🐳 Docker
8592

8693
You can now run this app using Docker for easy deployment and local development.
8794

8895
### Build the Docker image
96+
8997
```sh
9098
docker build -t my-portfolio-app .
9199
```
92100

93101
### Run the Docker container
102+
94103
```sh
95-
docker run -p 3000:3000 --env-file .env my-portfolio-app
104+
docker run -p 3000:3000 --env-file .env.local my-portfolio-app
96105
```
97106

98-
- The app will be available at [http://localhost:3000](http://localhost:3000)
99-
- Make sure to set up your `.env` file with the required environment variables before running.
107+
The app will be available at [http://localhost:3000](http://localhost:3000)
108+
Make sure to set up your `.env.local` file before running.
109+
110+
```
58.8 KB
Loading

app/assets/projects/docsx.webp

26.2 KB
Loading

app/assets/projects/encryptx.webp

25.3 KB
Loading

app/assets/projects/index.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import Portfolio from './portfolio.webp';
2+
import CompressorX from './compressorx.webp';
3+
import EncryptX from './encryptx.webp';
4+
import DocsX from './docsx.webp';
5+
6+
// Note: For preview images, I'm using the project's thumbnail image as the preview.
7+
// For CompressorX, a dedicated preview image is used.
8+
import CompressorXPreview from './preview/compressorx_hero.webp';
9+
import PortfolioPreview from './portfolio.webp'; // using thumbnail as preview
10+
import EncryptXPreview from './encryptx.webp'; // using thumbnail as preview
11+
import DocsXPreview from './docsx.webp'; // using thumbnail as preview
12+
13+
import { StaticImageData } from 'next/image';
14+
15+
export const projectImages: Record<string, StaticImageData> = {
16+
'amitminer-portfolio': Portfolio,
17+
'compressorx': CompressorX,
18+
'encryptx': EncryptX,
19+
'docsx': DocsX,
20+
};
21+
22+
export const previewImages: Record<string, StaticImageData> = {
23+
'amitminer-portfolio': PortfolioPreview,
24+
'compressorx': CompressorXPreview,
25+
'encryptx': EncryptXPreview,
26+
'docsx': DocsXPreview,
27+
};

app/assets/projects/portfolio.webp

37 KB
Loading
22.1 KB
Loading

app/components/layout/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Footer component that displays website footer content with dynamic elements.
33
*
4-
* - Responsive design with desktop detection
4+
* - Design with desktop detection
55
* - Shows visitor counter only on desktop when scrolled to bottom
66
* - Displays copyright year, love animation, and social links
77
* - Includes open source project link

0 commit comments

Comments
 (0)