{"id":21710270,"url":"https://github.com/cloudinary-devs/nodejs-photo-album","last_synced_at":"2026-01-27T15:33:14.146Z","repository":{"id":255615120,"uuid":"844308308","full_name":"cloudinary-devs/nodejs-photo-album","owner":"cloudinary-devs","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-18T02:09:29.000Z","size":48965,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T18:34:56.127Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/cloudinary-devs.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}},"created_at":"2024-08-19T01:31:45.000Z","updated_at":"2025-01-21T18:22:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"72f20c6d-d714-4b43-8793-56496b9e798d","html_url":"https://github.com/cloudinary-devs/nodejs-photo-album","commit_stats":null,"previous_names":["tpiros/nodejs-pa-demo","cloudinary-devs/nodejs-photo-album"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cloudinary-devs/nodejs-photo-album","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-devs%2Fnodejs-photo-album","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-devs%2Fnodejs-photo-album/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-devs%2Fnodejs-photo-album/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-devs%2Fnodejs-photo-album/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudinary-devs","download_url":"https://codeload.github.com/cloudinary-devs/nodejs-photo-album/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-devs%2Fnodejs-photo-album/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28815409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"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":[],"created_at":"2024-11-25T23:14:25.214Z","updated_at":"2026-01-27T15:33:14.133Z","avatar_url":"https://github.com/cloudinary-devs.png","language":"JavaScript","readme":"# Introduction\n\nThis project demonstrates how to use the [Cloudinary Node.js SDK](https://cloudinary.com/documentation/node_integration) to create a photo album app.\n\nThe sample project has two distinctive parts: a backend and a frontend and together they demonstrate uploading media to your product environment and displaying the uploaded media.\n\n# Setup\n\nCreate a `.env` file with the following content at the root of the project:\n\n```\nCLOUDINARY_API_KEY=\nCLOUDINARY_API_SECRET=\nCLOUDINARY_CLOUD_NAME=\n\nVITE_API_ENDPOINT=http://localhost:3000\nVITE_CLOUDINARY_IMAGE_PREFIX=https://res.cloudinary.com/YOUR-CLOUD-NAME/image/upload\nVITE_CLOUDINARY_VIDEO_PREFIX=https://res.cloudinary.com/YOUR-CLOUD-NAME/video/upload\nVITE_TITLE='Node.js Sample App'\n```\n\n\u003e Please make sure to change the `YOUR-CLOUD-NAME` part in **both** `VITE_CLOUDINARY_IMAGE_PREFIX` and `VITE_CLOUDINARY_VIDEO_PREFIX`!\n\n# Run\n\nFrom your terminal, in the root folder of your project, run:\n\n- `npm i`\n- `npm start`\n\nThe last command starts both the backend and the frontend as well. The backend uses Cloudinary's Node.js SDK and exposes a bunch of endpoints to achieve the desired functionality of the app.\n\nThe frontend uses (Lit)[https://lit.dev/docs/v1/lit-html/introduction/] to provide a user interface to demonstrate how to consume the endpoints exposed by the backend.\n\nTry uploading images and videos using each of the pages, then see them being displayed on the Gallery page.\n\n## Backend\n\nIf you would like to explore how some backend specific API endpoints work, have a look at the `/upload-from-local` and `/upload-large-from-local` endpoints that both upload files from the local filesystem and not from the browser. (The browser upload examples are visible via the UI and are handled by the remaining endpoints)\n\n# Explore\n\n- Take a look at the source code to understand how it works.\n- Discover more features in the [Cloudinary Docs](https://cloudinary.com/documentation).\n- Ask for help in our [Community Forum](https://community.cloudinary.com/), in [Discord](https://discord.gg/Cloudinary), or [raise a support request](https://support.cloudinary.com/hc/en-us/requests/new).\n\nFeel free to fork this repo as a starting point for your own Node.js app, contribute to it, or star it if you like it!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudinary-devs%2Fnodejs-photo-album","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudinary-devs%2Fnodejs-photo-album","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudinary-devs%2Fnodejs-photo-album/lists"}