About This Project
Overview
A personal CV website with responsive UI, interactive features, admin dashboard, and integration with external APIs. Built using HTML, CSS, JavaScript, ReactJS, Node.js, Express.js, MongoDB, and deployed to both Render (PaaS) and AWS EC2 (with Docker) for redundancy and flexibility.
Frontend Features
- Responsive Design — Optimized for desktop and mobile using HTML, CSS, JavaScript and ReactJS.
 - Burger Menu — Mobile-friendly navigation for quick access to all pages.
 - Downloadable CV — CV is available as a downloadable .docx file.
 
Core Pages & Functionality
- Home Page — Displays CV and quick access to core sections.
 - Job Offer Submission Page — Allows visitors to submit job offers via a form.
 - Swagger API Documentation — Accessible API reference generated via swagger-jsdoc and swagger-ui-express.
 
Backend & API
- Node/Express.js Server — Handles routing, API endpoints, and session management.
 - MongoDB Integration — Stores submitted job offers securely.
 - Email Notifications — Sends automated email alerts using Resend when a new offer is received.
 - Admin Authentication — Login system with sessions to restrict access to admin features.
 - Admin Dashboard — Lists received job offers (/api/offers endpoint).
 
Hosting & Deployment
- Render (PaaS) — Primary hosting with GitHub integration for automated CI/CD on each push.
 - AWS EC2 + Docker + GitHub Actions — Alternative hosting environment with containerized deployment for full control. Grafana + Prometheus for monitoring, and SSL + Nginx for security, installed manually.
 
Testing
- Unit Testing — Implemented with Mocha and Chai; executed automatically during CI/CD.
 - End-to-End Testing — Cypress tests simulate real user interactions to validate site functionality.
 
Tools & AI Assistance
- Project development was supported with the help of ChatGPT, Windsurf AI, and GitHub Copilot for generating, refactoring, and optimizing code.