{"id":50902508,"url":"https://github.com/delitamakanda/angular-qrcode-restaurant","last_synced_at":"2026-06-16T04:02:42.568Z","repository":{"id":351118739,"uuid":"1203642337","full_name":"delitamakanda/angular-qrcode-restaurant","owner":"delitamakanda","description":"cashier.tw clone with Angular 21","archived":false,"fork":false,"pushed_at":"2026-05-24T18:29:55.000Z","size":301,"stargazers_count":0,"open_issues_count":118,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T19:23:04.833Z","etag":null,"topics":["angular21","signals","standalone","tailwindcss"],"latest_commit_sha":null,"homepage":"https://angular-qrcode-restaurant.pages.dev/","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/delitamakanda.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-07T08:23:56.000Z","updated_at":"2026-05-24T18:12:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/delitamakanda/angular-qrcode-restaurant","commit_stats":null,"previous_names":["delitamakanda/angular-qrcode-restaurant"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/delitamakanda/angular-qrcode-restaurant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delitamakanda%2Fangular-qrcode-restaurant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delitamakanda%2Fangular-qrcode-restaurant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delitamakanda%2Fangular-qrcode-restaurant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delitamakanda%2Fangular-qrcode-restaurant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/delitamakanda","download_url":"https://codeload.github.com/delitamakanda/angular-qrcode-restaurant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delitamakanda%2Fangular-qrcode-restaurant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34390052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"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":["angular21","signals","standalone","tailwindcss"],"created_at":"2026-06-16T04:02:39.989Z","updated_at":"2026-06-16T04:02:42.560Z","avatar_url":"https://github.com/delitamakanda.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Angular QR Code Restaurant [![CI](https://github.com/delitamakanda/angular-qrcode-restaurant/actions/workflows/ci.yml/badge.svg?branch=main\u0026event=push)](https://github.com/delitamakanda/angular-qrcode-restaurant/actions/workflows/ci.yml)\n\nAngular application for restaurant ordering via QR code. The project simulates the main customer journey: choosing an order mode, browsing the menu, customizing a product, reviewing the cart, submitting checkout information, and confirming an order, with a mock API available locally or through Cloudflare Pages Functions.\n\n## QRCODE\n\u003cimg src=\"angular-qrcode-restaurant-1024.jpeg\" alt=\"Alt Text\" width=\"200\" height=\"200\"\u003e\n\n## Features\n\n- restaurant landing page with order mode selection (`dine_in`, `take_away`, `delivery`)\n- product catalog with category filtering and search\n- product customization with modifier groups and options\n- cart management and total calculation\n- checkout flow with customer details, payment method, and coupon code\n- order confirmation with access to the tracking page\n- mock API backed by `mock-api/db.json` and exposed under `/api/*`\n\n## Tech stack\n\n- Angular 21 with standalone components\n- Angular Signals for application state\n- Taiga UI for part of the interface\n- `json-server` for the local mock API\n- Cloudflare Pages Functions to serve the frontend and mock API from one project\n\n## Repository structure\n\n```text\n.\n├── functions/api/[[path]].ts   # Cloudflare Pages-compatible mock API\n├── mock-api/                   # local data and json-server configuration\n├── public/                     # static files (_redirects, images...)\n└── src/app/                    # Angular application\n```\n\n## Architecture Diagram\n\n```mermaid\nflowchart LR\n    B[Customer browser]\n    A[Angular app\u003cbr/\u003esrc/app]\n    P[Cloudflare Pages Function\u003cbr/\u003efunctions/api/#91;path\u0026#93.ts]\n    M[Local mock API\u003cbr/\u003emock-api/db.json]\n\n    B --\u003e|HTTP| A\n    A --\u003e|/api/*| P\n    P --\u003e|read/write demo data| M\n```\n\n## Prerequisites\n\n- Node.js 20+\n- npm 11+\n\n## Installation\n\n```bash\nnpm ci\ncd mock-api \u0026\u0026 npm ci\n```\n\n## Run locally\n\n1. Start the mock API in a first terminal:\n\n   ```bash\n   cd mock-api\n   npm start\n   ```\n\n2. From the project root, start the Angular application in a second terminal:\n\n   ```bash\n   npm start\n   ```\n\n3. Open `http://localhost:4200/`.\n\nThe Angular dev server proxies `/api` requests to `http://localhost:3000` through `proxy.conf.json`.\n\n## Available flow\n\nThe default route redirects to:\n\n```text\n/store/demo/welcome\n```\n\nMain routes:\n\n- `/store/:storeId/welcome`\n- `/store/:storeId/menu`\n- `/store/:storeId/cart`\n- `/store/:storeId/checkout`\n- `/store/:storeId/confirmation/:orderId`\n- `/store/:storeId/tracking/:orderId`\n\n## Mock data and API\n\nDemo data is defined in `mock-api/db.json`.\n\nAvailable resources:\n\n- `GET /api/stores/:id`\n- `GET /api/categories?store_id=demo\u0026sort=sort_order`\n- `GET /api/menus?store_id=demo`\n- `GET /api/menus/:id`\n- `GET /api/groups?menu_item_id=...`\n- `GET /api/options?group_id=...`\n- `GET /api/orders/:id`\n- `POST /api/orders`\n\n\u003e Orders created locally are kept in memory only while the mock process is running.\n\n## Useful commands\n\n```bash\nnpm start                     # start the Angular frontend\nnpm run format               # format files with Prettier\nnpm run format:check         # check formatting with Prettier\nnpm run build                 # create a production build\nnpx ng test --watch=false     # run Angular/Vitest unit tests\n```\n\n## Deploy to Cloudflare Pages\n\nThe repository is ready to serve both the frontend and the mock API from a single Cloudflare Pages project.\n\n- **Build command**: `npm run build`\n- **Build output directory**: `dist/angular-qrcode-restaurant/browser`\n- **Function**: `functions/api/[[path]].ts`\n- **Redirects**: `public/_redirects`\n\n## Additional resources\n\n- Angular CLI: \u003chttps://angular.dev/tools/cli\u003e\n- Cloudflare Pages Functions: \u003chttps://developers.cloudflare.com/pages/functions/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelitamakanda%2Fangular-qrcode-restaurant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdelitamakanda%2Fangular-qrcode-restaurant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelitamakanda%2Fangular-qrcode-restaurant/lists"}