diff --git a/Projects/3-Advanced/Portfolio-Website.md b/Projects/3-Advanced/Portfolio-Website.md new file mode 100644 index 00000000..547808cd --- /dev/null +++ b/Projects/3-Advanced/Portfolio-Website.md @@ -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 +- [ ] 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) +- [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)