{"id":44444153,"url":"https://github.com/alp-kurt/firebase-backend-typescript","last_synced_at":"2026-02-12T15:14:22.914Z","repository":{"id":336496347,"uuid":"1149315847","full_name":"alp-kurt/firebase-backend-typescript","owner":"alp-kurt","description":"Firebase Cloud Functions + Firestore session API with a Vite React admin console. Includes auth, validation, rate limiting, idempotency, and CI/CD workflows.","archived":false,"fork":false,"pushed_at":"2026-02-04T23:16:12.000Z","size":608,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-05T04:43:18.302Z","etag":null,"topics":["backend","ci-cd","firebase","gcp","google-cloud-platform","jest","react","typescript","vite"],"latest_commit_sha":null,"homepage":"https://alp-kurt.github.io/firebase-backend-typescript/","language":"TypeScript","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/alp-kurt.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2026-02-04T01:13:10.000Z","updated_at":"2026-02-04T23:16:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alp-kurt/firebase-backend-typescript","commit_stats":null,"previous_names":["alp-kurt/firebase-backend-typescript"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/alp-kurt/firebase-backend-typescript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alp-kurt%2Ffirebase-backend-typescript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alp-kurt%2Ffirebase-backend-typescript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alp-kurt%2Ffirebase-backend-typescript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alp-kurt%2Ffirebase-backend-typescript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alp-kurt","download_url":"https://codeload.github.com/alp-kurt/firebase-backend-typescript/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alp-kurt%2Ffirebase-backend-typescript/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29369730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"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":["backend","ci-cd","firebase","gcp","google-cloud-platform","jest","react","typescript","vite"],"created_at":"2026-02-12T15:14:19.881Z","updated_at":"2026-02-12T15:14:22.903Z","avatar_url":"https://github.com/alp-kurt.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Firebase Session API (TypeScript)\n\nFirestore-backed session management API on Firebase Cloud Functions with a small Vite React admin console.\n\n## Live Demo\nhttps://alp-kurt.github.io/firebase-backend-typescript/login\n\n## Setup\n1. Install backend dependencies:\n```bash\ncd functions\nnpm install\n```\n\n2. Install frontend dependencies:\n```bash\ncd ../frontend\nnpm install\n```\n\n3. Configure frontend env:\n```bash\ncp .env.example .env\n```\nFill in `VITE_FIREBASE_*` values from your Firebase project.\n\n## Run Locally\n```bash\n# from repo root\nfirebase emulators:start\n```\n\nFrontend dev server:\n```bash\ncd frontend\nnpm run dev\n```\n\n## Cloning \u0026 Firebase Projects\n- After cloning, run `firebase login` and `firebase use --add` to select your own project.\n- Emulators run locally without a Firebase project, but deployments require a selected project.\n\n## Manual Firebase Setup\nSome Firebase settings must be configured manually. See [`FirebaseSetup.md`](./FirebaseSetup.md).\n\n## Deploy\nFunctions:\n```bash\ncd functions\nnpm run deploy:prod\n```\nFirestore rules:\n```bash\ncd functions\nnpm run deploy:rules\n```\nPredeploy checks (lint + test + build):\n```bash\ncd functions\nnpm run predeploy:check\n```\n\nFrontend (Firebase Hosting):\n```bash\ncd frontend\nnpm run deploy\n```\nPredeploy checks (lint + build):\n```bash\ncd frontend\nnpm run predeploy:check\n```\n\nGitHub Pages (tagged releases):\n- Deploys on Release Published via GitHub Actions.\n\n## API Docs\n- Full endpoint list and examples: [`Endpoints.md`](./Endpoints.md)\n- Tests: [`Tests.md`](./Tests.md)\n- Changelog: [`CHANGELOG.md`](./CHANGELOG.md)\n- Emulator guide: [`Emulators.md`](./Emulators.md)\n\n## Decisions / Trade-offs\n- Timestamps are serialized to ISO strings for client-friendly responses.\n- Idempotency uses a Firestore collection + TTL for lightweight de-duplication.\n- Rate limiting is in-memory per instance; Redis would be the next step for global limits.\n\nMore details: [`DesignChoices.md`](./DesignChoices.md)\n\n## Author\n[Alp Kurt](https://alpkurt.com) — krtalp@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falp-kurt%2Ffirebase-backend-typescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falp-kurt%2Ffirebase-backend-typescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falp-kurt%2Ffirebase-backend-typescript/lists"}