diff --git a/Projects/3-Advanced/Portfolio-Website.md b/Projects/3-Advanced/Portfolio-Website.md new file mode 100644 index 000000000..547808cdc --- /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) diff --git a/README.md b/README.md index c54bfa414..6ca662ced 100644 --- a/README.md +++ b/README.md @@ -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