{"id":31750533,"url":"https://github.com/ggalina/portfolio-backend","last_synced_at":"2026-05-03T20:32:53.360Z","repository":{"id":318213186,"uuid":"1068072364","full_name":"GGalina/portfolio-backend","owner":"GGalina","description":"Backend for sending email from portfolio website","archived":false,"fork":false,"pushed_at":"2026-03-01T18:27:37.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-01T18:41:30.538Z","etag":null,"topics":["expressjs","googleapi","joi-validation","nodejs"],"latest_commit_sha":null,"homepage":"https://portfolio-backend-production-8bf4.up.railway.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/GGalina.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-01T20:13:42.000Z","updated_at":"2026-03-01T18:28:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"4537c3ff-9c3a-40f5-b002-f5890bf3cba1","html_url":"https://github.com/GGalina/portfolio-backend","commit_stats":null,"previous_names":["ggalina/portfolio-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GGalina/portfolio-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GGalina%2Fportfolio-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GGalina%2Fportfolio-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GGalina%2Fportfolio-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GGalina%2Fportfolio-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GGalina","download_url":"https://codeload.github.com/GGalina/portfolio-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GGalina%2Fportfolio-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32583949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["expressjs","googleapi","joi-validation","nodejs"],"created_at":"2025-10-09T15:52:53.591Z","updated_at":"2026-05-03T20:32:53.355Z","avatar_url":"https://github.com/GGalina.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Email Sender Backend\n\nThis Node.js backend allows you to send emails from your portfolio website using the Gmail API with OAuth2 for authentication.\n\nThe backend service for this project is deployed and available at: http://portfolio-backend-production-8bf4.up.railway.app\n\n## Prerequisites\n\n- Node.js installed on your machine\n- NPM (Node Package Manager) installed\n- A Gmail account for sending emails\n\n## Installation\n\n1. Clone this repository to your local machine.\n\n```bash\ngit clone https://github.com/GGalina/portfolio-backend.git\n```\n\n2. Navigate to the project directory.\n\n```bash\ncd portfolio-backend\n```\n\n3. Install dependencies.\n\n```bash\nnpm install\n```\n\n## Configuration\n\nCreate a .env file with your configuration setting\n\n```javascript\nGMAIL_ADDRESS_FROM=your-email@gmail.com\nGMAIL_ADDRESS_TO=recipient-email@gmail.com\nGMAIL_CLIENT_ID=your-google-client-id.apps.googleusercontent.com\nGMAIL_CLIENT_SECRET=your-google-client-secret\nGMAIL_REFRESH_TOKEN=your-google-refresh-token\nALLOWED_ORIGINS=http://localhost:3000,https://your-frontend-domain.com\nPORT=8080\n```\n\n## Usage\n\nStart the server.\n\n```bash\nnpm start\n```\nThe server will be running at http://localhost:3000 by default.\n\n## API Endpoints\n### Send Email\n- URL: /send-email\n- Method: POST\n- Headers:\n -- Content-Type: application/json\n- Body:\n\n```json\n{\n  \"name\": \"John Smith\",\n  \"email\": \"smith@example.com\",\n  \"message\": \"Hi, I want to work with you\"\n}\n```\n\nMake a POST request to /send-email with the necessary details in the request body to send an email.\n\nExample Response:\n```json\n{\n  \"message\": \"Email sent successfully\"\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggalina%2Fportfolio-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fggalina%2Fportfolio-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggalina%2Fportfolio-backend/lists"}