{"id":14973190,"url":"https://github.com/nodeart/angular-commerce","last_synced_at":"2025-04-04T07:07:10.799Z","repository":{"id":18733913,"uuid":"85189221","full_name":"NodeArt/angular-commerce","owner":"NodeArt","description":"Angular components for scaffolding online store","archived":false,"fork":false,"pushed_at":"2023-04-18T07:40:46.000Z","size":1994,"stargazers_count":565,"open_issues_count":3,"forks_count":252,"subscribers_count":59,"default_branch":"master","last_synced_at":"2025-04-04T07:06:55.289Z","etag":null,"topics":["angular","angular-components","angular2","angular4","ecommerce","firebase","firebase-database","javascript","shopping-cart","typescript"],"latest_commit_sha":null,"homepage":"https://angularcommerce.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NodeArt.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2017-03-16T11:39:27.000Z","updated_at":"2025-03-15T08:13:47.000Z","dependencies_parsed_at":"2024-04-08T18:06:59.385Z","dependency_job_id":null,"html_url":"https://github.com/NodeArt/angular-commerce","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NodeArt%2Fangular-commerce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NodeArt%2Fangular-commerce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NodeArt%2Fangular-commerce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NodeArt%2Fangular-commerce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NodeArt","download_url":"https://codeload.github.com/NodeArt/angular-commerce/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247135144,"owners_count":20889421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["angular","angular-components","angular2","angular4","ecommerce","firebase","firebase-database","javascript","shopping-cart","typescript"],"created_at":"2024-09-24T13:48:19.234Z","updated_at":"2025-04-04T07:07:10.774Z","avatar_url":"https://github.com/NodeArt.png","language":"TypeScript","readme":"# Store components\r\n\r\nOnline store components written in Angular.  \r\n\r\nFull API and documentation check [here](https://nodeart.github.io/).\r\n\r\nCheck change log [here](https://github.com/NodeArt/angular-commerce/blob/master/CHANGELOG.md)\r\n\r\n## Store architecture\r\n\r\n### Components dependencies\r\nMost of components are separated from each other. The most common dependency is `Data Abstraction Layer (DAL)`.\r\nDAL is a bridge for some connector ( for now Firebase Connector ). DAL contains methods for manipulating with database \r\n(get products, add products to shopping cart, remove products from shopping cart etc.), auth api (register user, login, logout etc.).\r\n\r\n### Querying to database\r\nAs we started to use firebase for database, auth, storage, it was a question how to process heavy queries with aggregations, multiple conditions etc. [Firebase Realtime Databese api](https://firebase.google.com/docs/database/) was very simple for our requirentments.  \r\nAfter some time of research we stayed at `ElasticSearch`.\r\nIt's fast, allow to make heavy hard queries and Firebase team wrote an adapter to firebase called [Firebase Flashlight](https://github.com/firebase/flashlight).  \r\nFor example, queries in `Product Service` are written like `ElasticSearch queries`. \r\n\r\n### Organization of products\r\nAbout products organization you can read in docs for services, for example, `Product service` or `Basket service`.\r\n\r\n### Creating other connectors \r\nIf you want to create you own connector you must adopt it to `ElasticSearch flashlight` output.\r\n\r\n### Docs\r\n\r\nTo create documentation: \r\n```\r\nnpm i\r\nnpm run build-docs\r\n```\r\n\r\nTo serve documentation: \r\n```\r\nnpm run serve-docs\r\n```\r\n\r\n\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodeart%2Fangular-commerce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnodeart%2Fangular-commerce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodeart%2Fangular-commerce/lists"}