Skip to content

Commit 9596d54

Browse files
committed
feat: Implement portfolio sections with dynamic content
- Added new components: Achievements, Blog, Experience, Open Source, and Testimonials. - Integrated data files for achievements, blog posts, experience, open source projects, project stats, resume, and testimonials. - Enhanced features including project filtering, project stats display, and resume download functionality. - Updated documentation in QUICK_START.md for setup and data file editing.
1 parent a2cccf4 commit 9596d54

20 files changed

Lines changed: 1860 additions & 6 deletions

DATA_FILES_GUIDE.md

Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
# Portfolio Data Files Guide
2+
3+
This guide explains how to edit each data file to customize your portfolio.
4+
5+
## 1. Resume Data (`src/data/resume.json`)
6+
7+
Edit your resume/CV download link:
8+
9+
```json
10+
{
11+
"fileName": "valentino-phiri-resume.pdf",
12+
"url": "https://drive.google.com/file/d/YOUR_RESUME_FILE_ID/view",
13+
"downloadUrl": "https://drive.google.com/uc?export=download&id=YOUR_RESUME_FILE_ID",
14+
"lastUpdated": "2026-05-04"
15+
}
16+
```
17+
18+
**How to setup:**
19+
1. Upload your resume to Google Drive
20+
2. Right-click → Share → Get link (Anyone with link can view)
21+
3. Extract the file ID from the URL: `https://drive.google.com/file/d/YOUR_FILE_ID/view`
22+
4. Replace `YOUR_RESUME_FILE_ID` with the actual ID
23+
5. Update `lastUpdated` date
24+
25+
---
26+
27+
## 2. Experience Timeline (`src/data/experience.json`)
28+
29+
Add your work experience and education:
30+
31+
```json
32+
[
33+
{
34+
"id": 1,
35+
"type": "experience", // or "education"
36+
"role": "Your Role",
37+
"company": "Company Name",
38+
"startDate": "2023",
39+
"endDate": "Present",
40+
"description": "Brief description of your role",
41+
"highlights": [
42+
"Achievement 1",
43+
"Achievement 2",
44+
"Achievement 3"
45+
]
46+
}
47+
]
48+
```
49+
50+
**Notes:**
51+
- Use "Present" for current roles
52+
- `type` should be either "experience" or "education"
53+
- Add highlights as bullet points
54+
- Entries appear in timeline order
55+
56+
---
57+
58+
## 3. Blog Posts (`src/data/blog.json`)
59+
60+
Add blog articles:
61+
62+
```json
63+
[
64+
{
65+
"id": 1,
66+
"title": "Article Title",
67+
"excerpt": "Short description (1-2 sentences)",
68+
"content": "Full article content (optional for now)",
69+
"category": "Web Development", // Create any category
70+
"tags": ["React", "NextJS", "Tailwind"],
71+
"date": "2026-04-15",
72+
"readTime": 8, // Estimated minutes to read
73+
"image": "/images/article-image.png", // or null
74+
"url": "https://link-to-full-article.com",
75+
"featured": true // Shows in featured section
76+
}
77+
]
78+
```
79+
80+
**Tips:**
81+
- Categories auto-filter in the UI
82+
- `featured: true` shows articles first
83+
- Can link to external blogs or LinkedIn posts
84+
- Use ISO format for dates (YYYY-MM-DD)
85+
86+
---
87+
88+
## 4. Open Source Projects (`src/data/openSource.json`)
89+
90+
Add your open source contributions:
91+
92+
```json
93+
[
94+
{
95+
"id": 1,
96+
"name": "Project Name",
97+
"description": "What the project does",
98+
"url": "https://github.com/username/repo",
99+
"stars": 45, // GitHub stars count
100+
"forks": 12, // GitHub forks count
101+
"language": "JavaScript",
102+
"topics": ["tag1", "tag2", "tag3"],
103+
"featured": true // Shows first
104+
}
105+
]
106+
```
107+
108+
**Where to find stars/forks:**
109+
- Go to your GitHub repo
110+
- Stars count is on the right side
111+
- Click "Forks" to see fork count
112+
113+
---
114+
115+
## 5. Testimonials (`src/data/testimonials.json`)
116+
117+
Add testimonials from clients or colleagues:
118+
119+
```json
120+
[
121+
{
122+
"id": 1,
123+
"author": "Person Name",
124+
"role": "Job Title",
125+
"company": "Company Name",
126+
"testimonial": "Their quote about working with you",
127+
"image": "/path/to/image.jpg", // or null
128+
"link": "https://linkedin.com/in/person", // or null
129+
"featured": true // Shows prominently
130+
}
131+
]
132+
```
133+
134+
**Notes:**
135+
- `featured: true` shows only featured testimonials
136+
- Images should be square (ideally 256x256px)
137+
- Link to their LinkedIn profile or website (optional)
138+
139+
---
140+
141+
## 6. Achievements & Badges (`src/data/achievements.json`)
142+
143+
Add your achievements:
144+
145+
```json
146+
[
147+
{
148+
"id": 1,
149+
"title": "Achievement Name",
150+
"description": "Brief description",
151+
"icon": "🚀", // Use any emoji
152+
"date": "2026-02-15",
153+
"category": "milestone" // "milestone", "skill", or "community"
154+
}
155+
]
156+
```
157+
158+
**Categories:**
159+
- `milestone` - Major accomplishments (e.g., projects going viral)
160+
- `skill` - Technical skills or expertise
161+
- `community` - Community contributions
162+
163+
**Emoji Ideas:**
164+
- 🚀 Launches, growth, viral
165+
- ⚡ Performance, speed, efficiency
166+
- 🎮 Game development
167+
- 🌐 Web, global
168+
- 🔧 Tools, building
169+
- 🏆 Awards, achievements
170+
- 🎯 Goals, focus
171+
- 💡 Ideas, innovation
172+
173+
---
174+
175+
## 7. Project Statistics (`src/data/projectStats.json`)
176+
177+
Add metrics for your projects (shown on project cards):
178+
179+
```json
180+
{
181+
"Project Title": {
182+
"github_stars": 234,
183+
"github_forks": 89,
184+
"live_users": 8900,
185+
"monthly_visitors": 25000,
186+
"uptime": 99.95,
187+
"average_rating": 4.9,
188+
"reviews_count": 156,
189+
"build_time_days": 14,
190+
"featured": true
191+
}
192+
}
193+
```
194+
195+
**Optional Fields (use 0 or omit if not applicable):**
196+
- `github_stars` - GitHub repository stars
197+
- `github_forks` - GitHub repository forks
198+
- `live_users` - Active users on the platform
199+
- `monthly_visitors` - Monthly traffic
200+
- `uptime` - Percentage (e.g., 99.9)
201+
- `average_rating` - Rating out of 5
202+
- `reviews_count` - Number of user reviews
203+
- `build_time_days` - Days to build
204+
- `downloads` - Number of downloads
205+
- `api_calls_monthly` - API usage
206+
207+
**Notes:**
208+
- Only fields with non-zero values will display
209+
- Project title must match exactly with Projects.tsx
210+
- This creates social proof on your project cards
211+
212+
---
213+
214+
## How to Edit Files
215+
216+
### In VS Code:
217+
1. Open the file from `src/data/`
218+
2. Edit the JSON data
219+
3. Keep the JSON structure valid (commas, brackets, quotes)
220+
4. Save the file
221+
5. The changes appear immediately in development
222+
223+
### JSON Formatting Tips:
224+
- Always use double quotes for strings
225+
- Commas between array items and object properties
226+
- Valid dates: YYYY-MM-DD format
227+
- No trailing commas
228+
229+
### Common Mistakes to Avoid:
230+
- ❌ Missing commas between items
231+
- ❌ Using single quotes instead of double quotes
232+
- ❌ Unmatched brackets or braces
233+
- ❌ Project names not matching exactly
234+
235+
---
236+
237+
## Quick Start Checklist
238+
239+
- [ ] Update `resume.json` with your resume link
240+
- [ ] Add 3-5 entries to `experience.json`
241+
- [ ] Add 3-4 blog posts to `blog.json`
242+
- [ ] Add your open source projects to `openSource.json`
243+
- [ ] Add 2-3 testimonials to `testimonials.json`
244+
- [ ] Add 5-6 achievements to `achievements.json`
245+
- [ ] Update `projectStats.json` with project metrics
246+
247+
---
248+
249+
## Troubleshooting
250+
251+
**JSON errors won't display?**
252+
- Check for syntax errors in the file
253+
- Use a JSON validator: https://jsonlint.com
254+
255+
**Data not showing in the UI?**
256+
- Ensure the file has correct structure
257+
- Check browser console for errors (F12)
258+
- Restart the development server
259+
260+
**Can't find where to edit?**
261+
- All data files are in `src/data/` folder
262+
- Edit any `.json` file to update your portfolio
263+
264+
---
265+
266+
## Questions or Need Help?
267+
268+
Refer to the example data already in each file - they show the correct format!

0 commit comments

Comments
 (0)