|
| 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