Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions Projects/3-Advanced/Portfolio-Website.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Portfolio Website

**Tier:** 3-Advanced

## Description

Build a full-stack personal portfolio website with a hidden admin panel
for dynamic content management. All sections — projects, skills,
experience, education, and certifications — are database-driven and
manageable without touching code.

## User Stories

- [ ] User can view hero section with name, role, and download CV button
- [ ] User can browse projects, skills, experience, and education sections
- [ ] User can toggle between dark and light theme, persisted across visits
- [ ] User can submit a contact form saved to the database
- [ ] Admin can access a hidden panel via a secret URL
- [ ] Admin can log in with a password verified server-side
- [ ] Admin can create, edit, and delete projects, skills, education, experience, and certifications
- [ ] Admin can upload project images stored in the database
- [ ] Admin can update the CV download link without touching code

## Bonus features

- [ ] Rate-limit login attempts to prevent brute force
- [ ] Store password as a SHA-256 hash — never plain text
Comment thread
momattar marked this conversation as resolved.
- [ ] Animate sections on scroll with IntersectionObserver
- [ ] Show live project count in the hero stats

## Useful links and resources

- [ASP.NET Core MVC](https://learn.microsoft.com/en-us/aspnet/core/mvc/overview)
- [Entity Framework Core](https://learn.microsoft.com/en-us/ef/core/)
- [SHA-256 in C#](https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.sha256)
Comment thread
momattar marked this conversation as resolved.
- [ASP.NET Core Rate Limiting](https://learn.microsoft.com/en-us/aspnet/core/performance/rate-limit)
- [IntersectionObserver API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API)

## Example projects

- [themomattar.runasp.net](https://themomattar.runasp.net)
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ required to complete them.
| [Slack Archiver](./Projects/3-Advanced/Slack-Archiver.md) | Archive Slack Messages | 3-Advanced |
| [Spell-It App](./Projects/3-Advanced/SpellIt-App.md) | A twist on the classic Speak N Spell game | 3-Advanced |
| [Survey App](./Projects/3-Advanced/Survey-App.md) | Define, conduct, and view a survey | 3-Advanced |
| [Portfolio Website](./Projects/3-Advanced/Portfolio-Website.md) | full-stack, database-driven personal portfolio, hidden admin panel | 3-Advanced |

## Plans for the future

Expand Down