{"id":23293518,"url":"https://github.com/guochenmeinian/cse-5234","last_synced_at":"2026-02-08T07:34:49.515Z","repository":{"id":194733845,"uuid":"688277311","full_name":"guochenmeinian/CSE-5234","owner":"guochenmeinian","description":"A Full Stack Application based on React \u0026 AWS Amplify","archived":false,"fork":false,"pushed_at":"2025-02-12T20:06:00.000Z","size":14155,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T00:30:40.983Z","etag":null,"topics":["aws-amplify-react","aws-s3","aws-sns","full-stack"],"latest_commit_sha":null,"homepage":"https://main.d3og35m6b202fa.amplifyapp.com/","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/guochenmeinian.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}},"created_at":"2023-09-07T02:45:33.000Z","updated_at":"2025-02-12T20:06:04.000Z","dependencies_parsed_at":"2025-06-08T06:00:41.097Z","dependency_job_id":null,"html_url":"https://github.com/guochenmeinian/CSE-5234","commit_stats":null,"previous_names":["guochenmeinian/cse-5234"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/guochenmeinian/CSE-5234","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guochenmeinian%2FCSE-5234","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guochenmeinian%2FCSE-5234/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guochenmeinian%2FCSE-5234/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guochenmeinian%2FCSE-5234/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guochenmeinian","download_url":"https://codeload.github.com/guochenmeinian/CSE-5234/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guochenmeinian%2FCSE-5234/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261080624,"owners_count":23106602,"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":["aws-amplify-react","aws-s3","aws-sns","full-stack"],"created_at":"2024-12-20T06:16:04.410Z","updated_at":"2026-02-08T07:34:44.479Z","avatar_url":"https://github.com/guochenmeinian.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CSE 5234 E-commerce Application\n\nWelcome to our e-commerce application for the CSE 5234 course. We built this full-stack application using Node.js and AWS Amplify for the backend and React.js for the frontend.\nThe deployment is available [here](https://main.d3og35m6b202fa.amplifyapp.com). \n\n\n## Project Overview\n\nIn this project, we aimed to create a seamless online shopping experience by implementing various functionalities that are essential for an e-commerce platform. \n\n\n## Structure\n\n- **Frontend:** React.js with [Material-UI](https://mui.com/) for the user interface.\n- **Backend:** Node.js with Express.js for handling API requests, AWS Amplify for building GraphQL API and serverless functions, and AWS SNS for messags delivery from publishers to subscribers.\n- **Database:** AWS DynamoDB (text data) and S3 bucket (image) on aws\n\nBelow is a graphical representation of our structure\n\n![image](public/other-images/rm-hub-architecture.png)\n\n\n## Local / Frontend Environment\n\n\n## Prerequisites\n\nBefore you begin, make sure you have the following prerequisites installed on your machine:\n\n- [Node.js](https://nodejs.org/)\n- [npm](https://www.npmjs.com/)\n\n1. **Clone the repository**\n\n```bash\ngit clone https://github.com/guochenmeinian/CSE-5234\n```\n\n2. **Install frontend components**\n\n``` bash \nnpm install\n```\n\n3. **Run the project**\n\n```bash\nnpm start\n```\n\n\n\n## Remote / Backend Environment\n\n## AWS Amplify\n\nThis section provides a quick start guide to using AWS Amplify for building scalable and secure cloud-powered applications. AWS Amplify is a development platform that simplifies the process of building and deploying full-stack applications on the cloud. Since Amplify is based on AWS configuration, you probably can't directly start the project unless I give you permission for using my account. Instead, you may need to start over with the following commands and manually create the functions by youself (refer to the **amplify** folder for details on how we implement the backend services).\n\n\n## Prerequisites\n\nBefore you begin, make sure you have the following prerequisites installed on your machine:\n\n- [Node.js](https://nodejs.org/)\n- [npm](https://www.npmjs.com/)\n- [AWS CLI](https://aws.amazon.com/cli/)\n\n\n## Getting Started\n\n1. **Install Amplify CLI**\n\n   ```bash\n   npm install -g @aws-amplify/cli\n   ```\n\n2. **Configure AWS Amplify**\n\n   Run the following command and follow the prompts to set up your Amplify environment:\n\n   ```bash\n   amplify configure\n   ```\n\n   This command will prompt you to sign in to your AWS account and configure your default AWS profile.\n\n3. **Create a New Amplify Project**\n\n   ```bash\n   amplify init\n   ```\n\n   Follow the prompts to configure your project. This command will create a new Amplify project and set up the necessary backend services.\n\n4. **Add Backend Services**\n\n   To add backend services such as authentication, API, and storage, use the following commands:\n\n    - Authentication:\n\n      ```bash\n      amplify add auth\n      ```\n\n    - API:\n\n      ```bash\n      amplify add api\n      ```\n\n    - Storage:\n\n      ```bash\n      amplify add storage\n      ```\n\n   Follow the prompts to configure each service.\n\n5. **Deploy Backend Services**\n\n   After adding backend services, deploy your changes to the cloud:\n\n   ```bash\n   amplify push\n   ```\n\n   This command will provision the necessary AWS resources and configure your backend services.\n\n6. **Integrate with Frontend**\n\n   Integrate your backend services with your frontend framework (React, Angular, Vue, etc.). Use the following command to add frontend support:\n\n   ```bash\n   amplify add hosting\n   ```\n\n   Follow the prompts and deploy your frontend:\n\n   ```bash\n   amplify publish\n   ```\n\n\n## Additional Commands\n\n- **View Amplify Status:**\n\n  ```bash\n  amplify status\n  ```\n\n  This command provides an overview of the current status of your Amplify project.\n\n- **Add Functionality:**\n\n  To add additional functionality, such as analytics, notifications, or machine learning, use the `amplify add` command followed by the service name.\n\n- **Update and Redeploy:**\n\n  After making changes to your project, use the following commands to update and redeploy:\n\n  ```bash\n  amplify update\n  amplify push\n  ```\n\nFor more detailed documentation and advanced usage, refer to the [AWS Amplify documentation](https://docs.amplify.aws/).\n\n\n## Database Design\n\nAWS DynamoDB: A NoSQL database service, used for storing structured data with low-latency access.\nAWS S3 (Simple Storage Service): An object storage service, used for storing and retrieving large files such as images.\n\n### Access Patterns\nRetrieve all products for listing on the website.\nFetch individual product details, including image from S3.\nUpdate inventory levels after a purchase.\nPlace a new order and update the Order table.\nRetrieve user order history.\n\n\n### How to Add/Edit/Delete product\n\n1. create an account and login on /admin\n2. add administrator permission to user in AWS Amplify website\n3. login in to perform operations\n\n\n## Team Members\nChenmeinian Guo,\nJiaqian Huang,\nHannes Scutt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguochenmeinian%2Fcse-5234","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguochenmeinian%2Fcse-5234","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguochenmeinian%2Fcse-5234/lists"}