{"id":17235966,"url":"https://github.com/sonufrienko/smart-parking","last_synced_at":"2025-07-17T01:35:40.105Z","repository":{"id":39456221,"uuid":"198583787","full_name":"sonufrienko/smart-parking","owner":"sonufrienko","description":"Smart Parking application by Sirin Software","archived":false,"fork":false,"pushed_at":"2023-01-04T05:14:08.000Z","size":5385,"stargazers_count":18,"open_issues_count":39,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T02:53:17.505Z","etag":null,"topics":["amplify","appsync","aws","graphql","iot","parking","react","smart-city","typescript"],"latest_commit_sha":null,"homepage":"https://sirinsoftware.com","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/sonufrienko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-24T07:39:27.000Z","updated_at":"2023-12-29T19:57:08.000Z","dependencies_parsed_at":"2023-02-01T22:30:31.600Z","dependency_job_id":null,"html_url":"https://github.com/sonufrienko/smart-parking","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sonufrienko/smart-parking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonufrienko%2Fsmart-parking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonufrienko%2Fsmart-parking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonufrienko%2Fsmart-parking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonufrienko%2Fsmart-parking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonufrienko","download_url":"https://codeload.github.com/sonufrienko/smart-parking/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonufrienko%2Fsmart-parking/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265558733,"owners_count":23787970,"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":["amplify","appsync","aws","graphql","iot","parking","react","smart-city","typescript"],"created_at":"2024-10-15T05:35:02.919Z","updated_at":"2025-07-17T01:35:40.084Z","avatar_url":"https://github.com/sonufrienko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Smart Parking\nCloud and Web dashboard for real-time visualization of parking slots.\n\n[Dashboard Demo](https://d1h3e1ucojuxt4.cloudfront.net/)\n\n![](public/images/scr1.png)\n\n![](public/images/scr4.png)\n\n![](public/images/scr3.png)\n\n## Serverless Architecture\n\n![](public/images/aws-cloud-architecture.png)\n\nCloud\n- AWS Amplify\n- AWS AppSync (using multiple authorization types)\n- AWS Cognito\n- DynamoDB\n- Lambda\n- S3\n\nCI/CD\n- GitHub Actions (CI)\n- AWS Amplify Console (CD)\n\nWeb app\n- React\n- TypeScript\n- GraphQL\n- Amplify\n\nMobile app\n- React Native\n\n## Features\n\n- Authorization (Amplify React component, AWS Cognito)\n- Show parking slots (GraphQL, AWS AppSync)\n- Update slot status in real-time (GraphQL subscriptions, AWS AppSync)\n\n\n## Getting Started\n\n\n```sh\n# Install Amplify CLI globally\nnpm install -g @aws-amplify/cli\namplify configure\n\n# Install project and dependencies\ngit clone https://github.com/sonufrienko/smart-parking\ncd smart-parking\nnpm i\n\n# Create a AWS CloudFormation stack\namplify init\n\n# Update the cloud resources (deployment)\namplify push\n\n# Build and publish both the backend and the front end\n# Upload React app to the S3 hosting bucket\namplify publish\n```\n\nGenerate aws-exports.js\n```sh\namplify init\n# ? Do you want to use an existing environment? **Yes**\n# ? Choose the environment you would like to use: **dev**\n```\n\nBranches\n- `master` - Production branch (protected). Used by Amplify Console for Continuous Deployment.\n- `dev` - Development branch.\n\n\nMocking and Testing\n```sh\nexport AWS_REGION=us-west-2\n\n# Execute local Lambda function\namplify mock function listSlots\n\n# Start GraphQL server\namplify mock api\n```\n\n## Request from LoRa Gateway\n\nRequest to change parking slot status:\n\n- `APPSYNC-API-URL` - AppSync URL, example: https://xxx.appsync-api.us-west-2.amazonaws.com/graphql\n- `APPSYNC-API-KEY` - Authorization by API Key\n- `PARKING-ID` - Parking ID (string)\n- `DEVICE-ID` - Device ID (number)\n- `SLOT-STATUS` - Free - 0, Used - 1 (number)\n\n```\ncurl \\\n-XPOST https://\u003cAPPSYNC-API-URL\u003e/graphql \\\n-H \"Content-Type:application/graphql\" \\\n-H \"x-api-key:\u003cAPPSYNC-API-KEY\u003e\" \\\n-d '{ \"query\": \"mutation { updateSlot(input: { parkingID: \\\"\u003cPARKING-ID\u003e\\\" device: \u003cDEVICE-ID\u003e slotStatus: \u003cSLOT-STATUS\u003e }) { parkingID slotNumber slotStatus device }}\" }'\n```\n\n## Scripts\n\n- `npm start` Runs the app in the development mode.\n- `npm test` Launches the test runner in the interactive watch mode\n- `npm run build` Builds the app for production to the `build` folder.\n- `npm run eject` This command will remove the single build dependency from your project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonufrienko%2Fsmart-parking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonufrienko%2Fsmart-parking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonufrienko%2Fsmart-parking/lists"}