{"id":29132123,"url":"https://github.com/nazmulxdev/nazmulxdev-portfolio-server","last_synced_at":"2026-05-06T17:33:13.770Z","repository":{"id":301876228,"uuid":"1010548589","full_name":"nazmulxdev/nazmulxdev-portfolio-server","owner":"nazmulxdev","description":"Express.js server for my MERN portfolio – handles email sending, API routes, and backend logic.","archived":false,"fork":false,"pushed_at":"2025-06-29T10:15:47.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-29T11:25:43.101Z","etag":null,"topics":["cors","dotenv","expressjs","nodejs","nodemailer"],"latest_commit_sha":null,"homepage":"https://nazmulxdev-portfolio-server.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nazmulxdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-29T10:05:47.000Z","updated_at":"2025-06-29T10:23:08.000Z","dependencies_parsed_at":"2025-06-29T11:36:07.563Z","dependency_job_id":null,"html_url":"https://github.com/nazmulxdev/nazmulxdev-portfolio-server","commit_stats":null,"previous_names":["nazmulxdev/nazmulxdev-portfolio-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nazmulxdev/nazmulxdev-portfolio-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazmulxdev%2Fnazmulxdev-portfolio-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazmulxdev%2Fnazmulxdev-portfolio-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazmulxdev%2Fnazmulxdev-portfolio-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazmulxdev%2Fnazmulxdev-portfolio-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nazmulxdev","download_url":"https://codeload.github.com/nazmulxdev/nazmulxdev-portfolio-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazmulxdev%2Fnazmulxdev-portfolio-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262720750,"owners_count":23353462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cors","dotenv","expressjs","nodejs","nodemailer"],"created_at":"2025-06-30T06:16:20.769Z","updated_at":"2026-05-06T17:33:08.746Z","avatar_url":"https://github.com/nazmulxdev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Personal Portfolio - Server\n\nThis repository contains the backend server code for my personal portfolio website. Its primary function is to handle the logic for the contact form, ensuring that messages from visitors are securely processed and delivered to my email address.\n\n\u003cdiv align=\"center\"\u003e\n\n[![Live Server](https://img.shields.io/badge/Live_Server-Online-blueviolet?style=for-the-badge)](https://nazmulxdev-portfolio-server.vercel.app/)\n[![Client Repo](https://img.shields.io/badge/Client_Repo-GitHub-333?style=for-the-badge\u0026logo=github)](https://github.com/nazmulxdev/nazmulxdev-portfolio-client)\n\n\u003c/div\u003e\n\n---\n\n### **Server Overview**\n\nThis is a lightweight server built with Node.js and Express. It provides a single, secure API endpoint to receive data from the portfolio's contact form. It then uses Nodemailer to send this data as a formatted email, allowing me to receive inquiries directly in my inbox.\n\n---\n\n### **Key Features**\n\n✅ **Contact Form Handler:** Securely processes data submitted from the client-side contact form.\n✅ **Email Delivery:** Uses Nodemailer to automatically send submitted messages to a specified email address.\n✅ **Secure Configuration:** All sensitive data (like email credentials) is managed securely using environment variables.\n✅ **CORS Enabled:** Configured with CORS to only accept requests from the deployed portfolio website, preventing unauthorized use.\n\n---\n\n### **API Endpoint**\n\n| Method | Endpoint | Description |\n| :--- | :--- | :--- |\n| `POST` | `/send-email` | Receives contact form data (name, email, message) and sends it as an email. |\n\n---\n\n### **Technologies \u0026 Dependencies**\n\nThis server is built with the following technologies and packages:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white\" alt=\"Node.js\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white\" alt=\"Express.js\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Nodemailer-2A7D6F?style=for-the-badge\u0026logo=nodemailer\u0026logoColor=white\" alt=\"Nodemailer\" /\u003e\n\u003c/p\u003e\n\n-   `cors`\n-   `dotenv`\n-   `express`\n-   `nodemailer`\n\n---\n\n### **Getting Started Locally**\n\nFollow these steps to run the server on your local machine:\n\n**1. Clone the repository:**\n```bash\ngit clone [https://github.com/nazmulxdev/nazmulxdev-portfolio-server.git](https://github.com/nazmulxdev/nazmulxdev-portfolio-server.git)\n```\n\n**2. Navigate to the project directory:**\n```bash\ncd nazmulxdev-portfolio-server\n```\n\n**3. Install NPM packages:**\n```bash\nnpm install\n```\n\n**4. Set up environment variables:**\nCreate a file named `.env` in the root directory and add your email credentials. This is required for Nodemailer to send emails.\n```.env\nEMAIL_USER=your_email@example.com\nEMAIL_PASS=your_email_app_password\n```\n*(Note: For Gmail, you will need to generate an \"App Password\". Do not use your regular password.)*\n\n**5. Run the server:**\n```bash\nnpm start\n```\nThe server will start, typically on `http://localhost:5000`.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnazmulxdev%2Fnazmulxdev-portfolio-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnazmulxdev%2Fnazmulxdev-portfolio-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnazmulxdev%2Fnazmulxdev-portfolio-server/lists"}