{"id":16186219,"url":"https://github.com/zenflow/mylocalshop","last_synced_at":"2026-01-21T17:34:47.075Z","repository":{"id":42869432,"uuid":"256843491","full_name":"zenflow/mylocalshop","owner":"zenflow","description":"Shop local, from home","archived":false,"fork":false,"pushed_at":"2023-01-06T03:51:17.000Z","size":677,"stargazers_count":2,"open_issues_count":19,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-13T20:38:49.574Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mylocalshop.now.sh","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/zenflow.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}},"created_at":"2020-04-18T20:09:18.000Z","updated_at":"2023-03-17T23:28:52.000Z","dependencies_parsed_at":"2023-02-05T06:17:03.333Z","dependency_job_id":null,"html_url":"https://github.com/zenflow/mylocalshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenflow%2Fmylocalshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenflow%2Fmylocalshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenflow%2Fmylocalshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenflow%2Fmylocalshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zenflow","download_url":"https://codeload.github.com/zenflow/mylocalshop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713305,"owners_count":20983683,"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":[],"created_at":"2024-10-10T07:17:36.792Z","updated_at":"2026-01-21T17:34:47.045Z","avatar_url":"https://github.com/zenflow.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mylocalshop\n\nShop local, from home\n\n---\n\n## Deployment notes:\n\n- When installing on Heroku, run `heroku stack:set container -a mylocalshop-hasura-engine` before connecting to repo \u0026 deploying\n\n---\n\n## TODO\n\n- `shops` table, `user.shops` field\n\n- fix identical files `hasura-support/lib/adminGraphql` \u0026 `web/lib/adminGraphql`\n- facebook auth provider\n- integrate apollo client subscriptions /w admin pages\n- use react-admin's provided interface for permissions\n- compute `siteMap` tree structure (with `title` \u0026 `icon` on leafs) from `auth`, \u0026 render MainMenu \u0026 PageHeading (\u0026 sitemap.xml?) based on it\n- show ProgressBar when react-admin is loading/refreshing?\n- delete old sessions when user logs in\n- nextjs issues\n    - dynamic components swallow errors! It should `Promise.reject(` errrors by default\n    - build matchRoute function, use it like \u003cLink href={matchRoute(href)} as={href}\u003e\u003ca href={href}\u003e\u003c/a\u003e\u003c/Link\u003e\n- hasura graphql-engine issues\n    - createdBy \u0026 updatedBy should be in \"Frequently used columns\"\n    - deploy in one service!\n- next-connect issues\n    - on errors, in addition to sending error message in http response, should propagate error so they are logged to console by default\n- react-admin issues\n    - need to manually pass hasCreate to `actions` prop of `\u003cEdit\u003e`, need to (invent \u0026) manually pass hasDelete everywhere \n    - render resource views using `session` **and `data`** (example: 'user' role is denied access to edit users **except their own user**)\n- handle errors in routes (server-side \u0026 client-side)\n- styles\n    - center things vertically when page is relatively empty (i.e. error pages)\n    - do them all properly, with material-ui's `makeStyles`\n    - mobile-friendliness\n- develop hasura-support outside of docker container, with nodemon\n- use prettier\n- use some prop-types \u0026 typescript\n- cypress tests\n- use rollbar (or similar) \n- use google analytics\n    - https://nextjs.org/docs/advanced-features/measuring-performance#sending-results-to-analytics \n- i18n\n\n\n- Simplify deployment and improve production performance by deploying all 3 processes in same way\n  - Either\n    - Deploy via kubernetes cluster on DigitalOcean\n      - https://github.com/hasura/hasura-k8s-stack\n      - https://kubernetes.io/docs/tutorials/\n      - https://kubectl.docs.kubernetes.io/pages/app_customization/bases_and_variants.html\n    - combine 3 processes into 1 and use single docker image\n      - main process will be node server that manages 3 child processes and proxies requests to web \u0026 hasura-engine\n      - either\n        - hack the Hasura docker image to also run node\n        - in docker container, run nodejs servers and, in a subcontainer, hasura-engine https://itnext.io/docker-in-docker-521958d34efd\n            - X this idea. Requires exposing docker socket as volume from host. \n                1. Not going to work easy with Windows development host\n                2. Hasura (and other platforms) unlikely to expose docker socket to containers like this \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenflow%2Fmylocalshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzenflow%2Fmylocalshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenflow%2Fmylocalshop/lists"}