Skip to content

Commit 2a9d6ce

Browse files
base react app
1 parent 8469185 commit 2a9d6ce

43 files changed

Lines changed: 24678 additions & 232 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# AWS Lambda API Endpoint for contact form
2+
REACT_APP_LAMBDA_ENDPOINT=https://your-lambda-endpoint.amazonaws.com/dev/send-email
3+
4+
# Optional: Add other environment variables here
5+
# REACT_APP_API_URL=https://api.example.com
6+
# REACT_APP_ANALYTICS_ID=your-analytics-id

.github/workflows/deploy.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Deploy React App to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: "pages"
16+
cancel-in-progress: false
17+
18+
jobs:
19+
build:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
25+
- name: Setup Node.js
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: '22'
29+
cache: 'npm'
30+
31+
- name: Install dependencies
32+
run: npm ci
33+
34+
- name: Build
35+
run: npm run build
36+
env:
37+
REACT_APP_LAMBDA_ENDPOINT: ${{ secrets.REACT_APP_LAMBDA_ENDPOINT }}
38+
39+
- name: Setup Pages
40+
uses: actions/configure-pages@v4
41+
42+
- name: Upload artifact
43+
uses: actions/upload-pages-artifact@v3
44+
with:
45+
path: ./build
46+
47+
deploy:
48+
environment:
49+
name: github-pages
50+
url: ${{ steps.deployment.outputs.page_url }}
51+
runs-on: ubuntu-latest
52+
needs: build
53+
steps:
54+
- name: Deploy to GitHub Pages
55+
id: deployment
56+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# Dependencies
2+
node_modules/
3+
/.pnp
4+
.pnp.js
5+
6+
# Testing
7+
/coverage
8+
9+
# Production
10+
/build
11+
12+
# Misc
13+
.DS_Store
14+
.env.local
15+
.env.development.local
16+
.env.test.local
17+
.env.production.local
18+
19+
# Environment variables
20+
.env
21+
22+
# Logs
23+
npm-debug.log*
24+
yarn-debug.log*
25+
yarn-error.log*
26+
lerna-debug.log*
27+
28+
# Runtime data
29+
pids
30+
*.pid
31+
*.seed
32+
*.pid.lock
33+
34+
# Coverage directory used by tools like istanbul
35+
coverage/
36+
*.lcov
37+
38+
# nyc test coverage
39+
.nyc_output
40+
41+
# Optional npm cache directory
42+
.npm
43+
44+
# Optional eslint cache
45+
.eslintcache
46+
47+
# TypeScript cache
48+
*.tsbuildinfo
49+
50+
# Optional REPL history
51+
.node_repl_history
52+
53+
# Output of 'npm pack'
54+
*.tgz
55+
56+
# Yarn Integrity file
57+
.yarn-integrity
58+
59+
# parcel-bundler cache (https://parceljs.org/)
60+
.cache
61+
.parcel-cache
62+
63+
# Next.js build output
64+
.next
65+
66+
# Nuxt.js build / generate output
67+
.nuxt
68+
dist
69+
70+
# Gatsby files
71+
.cache/
72+
# public
73+
74+
# Temporary folders
75+
tmp/
76+
temp/
77+
78+
# Editor directories and files
79+
.vscode/
80+
.idea/
81+
*.swp
82+
*.swo
83+
*~
84+
85+
# OS generated files
86+
.DS_Store
87+
.DS_Store?
88+
._*
89+
.Spotlight-V100
90+
.Trashes
91+
ehthumbs.db
92+
Thumbs.db

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
registry=https://registry.npmjs.org/

CONFIGURATION.md

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
# Configuration Guide
2+
3+
This portfolio uses a centralized configuration system that allows you to update all your personal information, contact details, and content from a single file.
4+
5+
## 📍 Main Configuration File
6+
7+
**File Location:** `src/config/personal.ts`
8+
9+
This file contains ALL your personal information that appears throughout the portfolio. You only need to edit this one file to update your entire website!
10+
11+
## 🎯 What You Can Update
12+
13+
### 1. Basic Information
14+
```typescript
15+
name: 'Your Full Name',
16+
firstName: 'Your First Name',
17+
title: 'Your Professional Title',
18+
tagline: 'Your professional tagline or description',
19+
```
20+
21+
### 2. Contact Information
22+
```typescript
23+
contact: {
24+
email: 'your.email@example.com',
25+
phone: '+1 (555) 123-4567',
26+
location: 'Your City, Country',
27+
},
28+
```
29+
30+
### 3. Social Media Links
31+
```typescript
32+
social: {
33+
github: 'https://github.com/yourusername',
34+
linkedin: 'https://linkedin.com/in/yourusername',
35+
twitter: 'https://twitter.com/yourusername',
36+
instagram: '', // Optional - leave empty if you don't want to show
37+
youtube: '', // Optional - leave empty if you don't want to show
38+
website: 'https://yourwebsite.com',
39+
},
40+
```
41+
42+
### 4. Professional Information
43+
```typescript
44+
professional: {
45+
yearsOfExperience: 3,
46+
currentRole: 'Your Current Job Title',
47+
currentCompany: 'Your Current Company',
48+
specializations: ['Skill 1', 'Skill 2', 'Skill 3'],
49+
bio: 'Your professional bio - this appears on the About page',
50+
},
51+
```
52+
53+
### 5. Personal Interests
54+
Update your interests that appear on the About page:
55+
```typescript
56+
about: {
57+
interests: [
58+
{
59+
title: 'Interest Title',
60+
description: 'Description of your interest',
61+
icon: '🌟', // Emoji icon
62+
},
63+
// Add more interests...
64+
],
65+
},
66+
```
67+
68+
### 6. Experience Timeline
69+
Update your work and education history:
70+
```typescript
71+
experience: [
72+
{
73+
year: '2024',
74+
title: 'Your Job Title',
75+
company: 'Company Name',
76+
description: 'What you did in this role',
77+
type: 'work', // 'work' or 'education'
78+
},
79+
// Add more experiences...
80+
],
81+
```
82+
83+
### 7. SEO & Metadata
84+
```typescript
85+
seo: {
86+
title: 'Your Name - Portfolio',
87+
description: 'Brief description for search engines',
88+
keywords: ['keyword1', 'keyword2', 'keyword3'],
89+
ogImage: '/path/to/your/image.jpg',
90+
},
91+
```
92+
93+
## 📁 Other Files You Might Want to Update
94+
95+
### Projects (`src/utils/constants.ts`)
96+
To add or modify your projects:
97+
1. Open `src/utils/constants.ts`
98+
2. Edit the `projects` array
99+
3. Add your project images to the `public/assets/` folder
100+
101+
### Skills (`src/utils/constants.ts`)
102+
To update your skills and their proficiency levels:
103+
1. Open `src/utils/constants.ts`
104+
2. Edit the `skills` array
105+
3. Adjust the `level` (0-100) for each skill
106+
107+
## 🚀 Deployment Instructions
108+
109+
### 1. GitHub Pages Deployment
110+
111+
1. **Push your changes to GitHub:**
112+
```bash
113+
git add .
114+
git commit -m "Update personal information"
115+
git push origin main
116+
```
117+
118+
2. **Set up GitHub Pages:**
119+
- Go to your repository on GitHub
120+
- Click on "Settings" tab
121+
- Scroll down to "Pages" section
122+
- Select "GitHub Actions" as the source
123+
- The deployment will start automatically
124+
125+
3. **Set up environment variables (for contact form):**
126+
- Go to your repository on GitHub
127+
- Click on "Settings" tab
128+
- Click on "Secrets and variables" → "Actions"
129+
- Add a new secret named `REACT_APP_LAMBDA_ENDPOINT`
130+
- Set the value to your AWS Lambda endpoint URL
131+
132+
### 2. AWS Lambda Setup (for Contact Form)
133+
134+
If you want the contact form to work, you need to set up an AWS Lambda function:
135+
136+
1. **Create a Lambda function** with the following code:
137+
```javascript
138+
const nodemailer = require('nodemailer');
139+
140+
exports.handler = async (event) => {
141+
// Your Lambda function code here
142+
// See your existing Lambda setup
143+
};
144+
```
145+
146+
2. **Get the Lambda endpoint URL** and add it to GitHub Secrets as `REACT_APP_LAMBDA_ENDPOINT`
147+
148+
### 3. Custom Domain (Optional)
149+
150+
To use a custom domain:
151+
1. Add a `CNAME` file to the `public` folder with your domain name
152+
2. Configure DNS settings with your domain provider
153+
3. Update the `website` URL in `personal.ts`
154+
155+
## 🔧 Development Commands
156+
157+
```bash
158+
# Install dependencies
159+
npm install
160+
161+
# Start development server
162+
npm start
163+
164+
# Build for production
165+
npm run build
166+
167+
# Deploy to GitHub Pages
168+
npm run deploy
169+
```
170+
171+
## 📝 Quick Update Checklist
172+
173+
When updating your portfolio:
174+
175+
- [ ] Update personal information in `src/config/personal.ts`
176+
- [ ] Replace profile image: `public/assets/AkhilDP2.jpeg`
177+
- [ ] Update projects in `src/utils/constants.ts`
178+
- [ ] Add project images to `public/assets/`
179+
- [ ] Update skills and their levels in `src/utils/constants.ts`
180+
- [ ] Test locally with `npm start`
181+
- [ ] Commit and push changes to trigger deployment
182+
183+
## 🐛 Troubleshooting
184+
185+
**Build fails?**
186+
- Check for syntax errors in `personal.ts`
187+
- Make sure all required fields are filled
188+
- Verify image paths exist
189+
190+
**Contact form not working?**
191+
- Check if `REACT_APP_LAMBDA_ENDPOINT` is set in GitHub Secrets
192+
- Verify your Lambda function is working
193+
- Check browser console for errors
194+
195+
**Deployment fails?**
196+
- Check GitHub Actions logs
197+
- Verify Node.js version compatibility
198+
- Make sure all dependencies are properly installed
199+
200+
## 📞 Need Help?
201+
202+
If you run into issues:
203+
1. Check the browser console for errors
204+
2. Review GitHub Actions logs for deployment issues
205+
3. Make sure all file paths are correct
206+
4. Verify all required fields in `personal.ts` are filled
207+
208+
---
209+
210+
**Remember:** After making changes to `src/config/personal.ts`, the entire website will automatically update with your new information!

0 commit comments

Comments
 (0)