This project is my personal portfolio website, designed to showcase my current skill set, and development interests. I consider it an exciting and insightful project, as it allowed me to practice not only programming but also UI/UX design areas where I also learned a few new tricks along the way.
π https://filepmate.hu
- HTML5 β Base structure
- CSS3 β Custom, responsive styling
- Vanilla JavaScript (ES6+) β Interactive behavior, form logic
- Google reCAPTCHA v2 β Anti-bot protection
- Figma β UI/UX design and prototyping
- Modern Fonts β Google Fonts:
Outfit,Roboto,Roboto Flex
- Node.js + Express.js β RESTful API endpoint (
/api/contact) - Nodemailer β GMail-based email delivery
- Axios β reCAPTCHA verification (via Google API)
- dotenv β Secure environment variable handling
- express-rate-limit β API request throttling (3 req / min)
- CORS β Cross-origin request configuration
- Vercel β Static frontend hosting with custom domain (
filepmate.hu) - Railway β Dynamic backend hosting
- GitHub β Version control and CI/CD integration
- π€ Clean "About Me" section with a personalized layout
- πΌ "Projects" showcase cards with tech stack tags
- π¬ Contact form functionality
- Full name, email, and message input fields
- Integrated Google reCAPTCHA v2
- Form data sent via POST to backend API
- Success and error feedback handling on the frontend
- βοΈ Email delivery via GMail SMTP using
nodemailer - π‘οΈ Rate limiting + CAPTCHA to prevent spam
- π± Responsive design
portfolio/
βββ FRONTEND/ # Static frontend files (Vercel)
β βββ index.html # Main HTML page
β βββ contact.js # Contact form logic + API request
β βββ styles/
β β βββ main.css # Custom responsive stylesheet
β βββ assets/ # Icons, badges, SVGs, rΓ©sumΓ©
β βββ [...svg, badge, cv.pdf etc.]
β
βββ BACKEND/ # Express backend (Railway)
β βββ server.js # Nodemailer + reCAPTCHA API logic
β βββ package.json # Dependencies and start script
β βββ .env # Environment variables (not versioned)
The project is split into two main parts: a static frontend hosted on Vercel, and a dynamic backend running on Railway.
πΈ The FRONTEND folder is deployed to Vercel and serves the client-side interface.
πΈ The BACKEND folder is deployed to Railway, handling email delivery, reCAPTCHA validation, and API logic.