58c1237326
- Add contact form dialog with HTMX integration (hx-post) - Implement browser-only access middleware (blocks curl/Postman/wget) - Add rate limiting (5 requests/hour per IP) for contact endpoint - Implement honeypot and timing-based bot detection - Add input validation (email format, message length 10-5000 chars) - Create contact button in desktop and mobile navigation (last position) Security features: - Browser-only middleware validates User-Agent, Referer/Origin, HX-Request headers - Honeypot field returns fake success to fool bots while logging spam - Timing validation rejects forms submitted < 2 seconds - All security events logged for monitoring Documentation: - docs/SECURITY.md - Comprehensive security documentation - docs/HACK-CHALLENGE.md - "Try to Hack Me!" challenge for security researchers - docs/SECURITY-AUDIT-REPORT.md - Full security audit report - docs/CONTACT-FORM-QUICKSTART.md - Integration guide Form fields: email (required), name, company, subject, message (required)
116 lines
5.7 KiB
Plaintext
116 lines
5.7 KiB
Plaintext
================================================================================
|
|
{{if .Icons}} 📄 CURRICULUM VITAE
|
|
{{else}} CURRICULUM VITAE
|
|
{{end}}================================================================================
|
|
|
|
{{if .Icons}}👤 {{end}}{{.CV.Personal.Name}}
|
|
{{.CV.Personal.Title}}
|
|
|
|
{{if .Icons}}📍{{else}}Location:{{end}} {{.CV.Personal.Location}}
|
|
{{if .Icons}}📧{{else}}Email: {{end}} {{.CV.Personal.Email}}
|
|
{{if .Icons}}📱{{else}}Phone: {{end}} {{.CV.Personal.Phone}}
|
|
{{if .Icons}}💼{{else}}LinkedIn:{{end}} {{.CV.Personal.LinkedIn}}
|
|
{{if .Icons}}💻{{else}}GitHub: {{end}} {{.CV.Personal.GitHub}}
|
|
{{if .Icons}}🌐{{else}}Website: {{end}} {{.CV.Personal.Website}}
|
|
|
|
================================================================================
|
|
{{if .Icons}} 📝 SUMMARY
|
|
{{else}} SUMMARY
|
|
{{end}}================================================================================
|
|
|
|
{{.CV.Summary}}
|
|
|
|
================================================================================
|
|
{{if .Icons}} 💼 EXPERIENCE
|
|
{{else}} EXPERIENCE
|
|
{{end}}================================================================================
|
|
{{range .CV.Experience}}
|
|
--------------------------------------------------------------------------------
|
|
{{if $.Icons}}🏢 {{end}}{{.Position}}
|
|
{{.Company}} | {{.Location}}
|
|
{{if $.Icons}}📅 {{end}}{{.StartDate}} - {{if .Current}}Present{{else}}{{.EndDate}}{{end}}{{if .Duration}} ({{.Duration}}){{end}}
|
|
--------------------------------------------------------------------------------
|
|
|
|
{{.ShortDescription}}
|
|
|
|
{{if $.Icons}}📋 Responsibilities:{{else}}Responsibilities:{{end}}
|
|
{{range .Responsibilities}}- {{.}}
|
|
{{end}}
|
|
{{if $.Icons}}🛠️ Technologies:{{else}}Technologies:{{end}} {{range $i, $t := .Technologies}}{{if $i}}, {{end}}{{$t}}{{end}}
|
|
|
|
{{end}}
|
|
================================================================================
|
|
{{if .Icons}} 🎓 EDUCATION
|
|
{{else}} EDUCATION
|
|
{{end}}================================================================================
|
|
{{range .CV.Education}}
|
|
{{if $.Icons}}📜 {{end}}{{.Degree}}{{if .Field}} - {{.Field}}{{end}}
|
|
{{.Institution}} - {{.Location}}
|
|
{{.StartDate}} - {{.EndDate}}
|
|
{{end}}
|
|
================================================================================
|
|
{{if .Icons}} 🛠️ TECHNICAL SKILLS
|
|
{{else}} TECHNICAL SKILLS
|
|
{{end}}================================================================================
|
|
{{range .CV.Skills.Technical}}
|
|
{{if $.Icons}}## 📦 {{.Category}}{{else}}## {{.Category}}{{end}}
|
|
{{range .Items}}- {{.}}
|
|
{{end}}
|
|
{{end}}
|
|
================================================================================
|
|
{{if .Icons}} 🏆 AWARDS
|
|
{{else}} AWARDS
|
|
{{end}}================================================================================
|
|
{{range .CV.Awards}}
|
|
{{if $.Icons}}🥇 {{end}}{{.Title}} - {{.Issuer}} ({{.Date}})
|
|
{{.Description}}
|
|
{{end}}
|
|
================================================================================
|
|
{{if .Icons}} 📁 PROJECTS
|
|
{{else}} PROJECTS
|
|
{{end}}================================================================================
|
|
{{range .CV.Projects}}
|
|
--------------------------------------------------------------------------------
|
|
{{if $.Icons}}🚀 {{end}}{{.Title}}{{if .URL}} - {{.URL}}{{end}}
|
|
{{if .Location}}{{.Location}}{{end}}
|
|
--------------------------------------------------------------------------------
|
|
{{.ShortDescription}}
|
|
{{range .Responsibilities}}- {{.}}
|
|
{{end}}
|
|
{{if $.Icons}}🛠️ Technologies:{{else}}Technologies:{{end}} {{range $i, $t := .Technologies}}{{if $i}}, {{end}}{{$t}}{{end}}
|
|
|
|
{{end}}
|
|
================================================================================
|
|
{{if .Icons}} 📚 COURSES
|
|
{{else}} COURSES
|
|
{{end}}================================================================================
|
|
{{range .CV.Courses}}
|
|
{{if $.Icons}}📖 {{end}}{{.Title}} - {{.Institution}} ({{.Date}})
|
|
{{.Location}}
|
|
{{if .Description}}{{.Description}}{{end}}
|
|
{{range .Responsibilities}}- {{.}}
|
|
{{end}}
|
|
{{end}}
|
|
================================================================================
|
|
{{if .Icons}} 🌍 LANGUAGES
|
|
{{else}} LANGUAGES
|
|
{{end}}================================================================================
|
|
{{range .CV.Languages}}
|
|
- {{if $.Icons}}🗣️ {{end}}{{.Language}}: {{.Proficiency}}{{if .Detail}} - {{.Detail}}{{end}}
|
|
{{end}}
|
|
================================================================================
|
|
{{if .Icons}} 📬 CONTACT
|
|
{{else}} CONTACT
|
|
{{end}}================================================================================
|
|
|
|
{{if .Icons}}👤{{else}}Name: {{end}} {{.CV.Personal.Name}}
|
|
{{if .Icons}}📧{{else}}Email: {{end}} {{.CV.Personal.Email}}
|
|
{{if .Icons}}📱{{else}}Phone: {{end}} {{.CV.Personal.Phone}}
|
|
{{if .Icons}}💼{{else}}LinkedIn:{{end}} {{.CV.Personal.LinkedIn}}
|
|
{{if .Icons}}💻{{else}}GitHub: {{end}} {{.CV.Personal.GitHub}}
|
|
{{if .Icons}}🌐{{else}}Website: {{end}} {{.CV.Personal.Website}}
|
|
|
|
================================================================================
|
|
Generated from: {{.BaseURL}} | Last Updated: {{.CV.Meta.LastUpdated}}
|
|
================================================================================
|