{"id":25814625,"url":"https://github.com/sunthecoder/kv-demo","last_synced_at":"2026-04-18T05:32:34.939Z","repository":{"id":274568921,"uuid":"923341476","full_name":"SunTheCoder/kv-demo","owner":"SunTheCoder","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-30T17:24:51.000Z","size":227,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T10:19:21.817Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://next-vercel-kv-demo.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/SunTheCoder.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":"2025-01-28T04:00:36.000Z","updated_at":"2025-01-30T17:24:55.000Z","dependencies_parsed_at":"2025-01-28T05:19:31.317Z","dependency_job_id":"3ce61f94-f056-4aad-bc52-eb54052949af","html_url":"https://github.com/SunTheCoder/kv-demo","commit_stats":null,"previous_names":["sunthecoder/kv-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SunTheCoder/kv-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTheCoder%2Fkv-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTheCoder%2Fkv-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTheCoder%2Fkv-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTheCoder%2Fkv-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SunTheCoder","download_url":"https://codeload.github.com/SunTheCoder/kv-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTheCoder%2Fkv-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31957558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-02-28T03:31:18.907Z","updated_at":"2026-04-18T05:32:34.924Z","avatar_url":"https://github.com/SunTheCoder.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Next.js Art Gallery Management System\n\nA modern web application for managing art galleries and exhibitions, built with Next.js and Vercel KV. This system helps galleries manage their artwork collection and plan exhibitions efficiently.\n\n## Features\n\n### Gallery Management\n- Browse and search the art collection\n- View detailed artwork information (title, artist, dimensions, year, colors)\n- Edit and delete artworks\n- Paginated artwork display\n\n### Exhibition Planning\n- Create and manage exhibitions with titles, dates, and descriptions\n- Support for both historical and contemporary artists\n- Curate artworks for each exhibition\n- Add installation notes and blueprints\n- Password-protected exhibition management\n\n## Getting Started\n\nFirst, set up your environment variables:\n\n```bash\n# Create a .env.local file with:\nEXHIBITION_PASSWORD=your_secure_password\nKV_URL=your_vercel_kv_url\nKV_REST_API_URL=your_vercel_kv_rest_url\nKV_REST_API_TOKEN=your_vercel_kv_token\nKV_REST_API_READ_ONLY_TOKEN=your_vercel_kv_readonly_token\n```\n\nThen, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n## Technology Stack\n\n- [Next.js](https://nextjs.org/) - React framework\n- [Vercel KV](https://vercel.com/storage/kv) - Redis database\n- [Tailwind CSS](https://tailwindcss.com/) - Styling\n- [Next.js App Router](https://nextjs.org/docs/app) - Routing\n- [Vercel Blob Storage](https://vercel.com/storage/blob) - Image storage\n\n## API Routes\n\n### Artworks\n- `GET /api/artworks` - List artworks\n- `POST /api/artworks` - Add artwork\n- `PATCH /api/artworks/[id]` - Update artwork\n- `DELETE /api/artworks/[id]` - Delete artwork\n\n### Exhibitions\n- `GET /api/exhibitions` - List exhibitions\n- `POST /api/exhibitions` - Create exhibition\n- `PATCH /api/exhibitions/[id]` - Update exhibition\n- `POST /api/exhibitions/[id]/notes` - Add note\n- `POST /api/exhibitions/blueprint` - Upload blueprint\n\n## Deployment\n\nThe easiest way to deploy this app is to use the [Vercel Platform](https://vercel.com/new).\n\nCheck out the [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n\n## Learn More\n\nTo learn more about the technologies used:\n\n- [Next.js Documentation](https://nextjs.org/docs)\n- [Vercel KV Documentation](https://vercel.com/docs/storage/vercel-kv)\n- [Tailwind CSS Documentation](https://tailwindcss.com/docs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunthecoder%2Fkv-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunthecoder%2Fkv-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunthecoder%2Fkv-demo/lists"}