-
Notifications
You must be signed in to change notification settings - Fork 90
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #350 from Anushkajoshii/feat-amplify_fullstack_api
Feat- amplify fullstack api
- Loading branch information
Showing
123 changed files
with
12,250 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# Fullstack AWS React Application- | ||
|
||
This project is a robust fullstack web application developed with React for the frontend and integrated with AWS services for authentication, GraphQL API, and infrastructure management. The application leverages AWS capabilities to deliver a scalable, secure, and efficient solution. | ||
|
||
## Steps:- | ||
1. Set up a React project and configure AWS Amplify for authentication, GraphQL API, and infrastructure management. | ||
2. Integrate Amplify libraries into React for authentication and API interactions, implementing CRUD operations. | ||
3. Manage state with React hooks or Redux and style components using SCSS. | ||
4. Deploy the application using AWS Amplify Hosting and monitor performance with AWS CloudWatch. | ||
|
||
|
||
## Frontend: React | ||
|
||
use :- npx create-react-app | ||
|
||
**User Interface**: The frontend is developed using React, providing a dynamic and responsive user experience. It leverages React's component-based architecture for modular and maintainable code. | ||
|
||
### Backend: AWS | ||
|
||
**Authentication:** AWS Amplify is used for implementing user authentication. It supports various sign-in methods, including email, social logins, and multi-factor authentication (MFA), ensuring secure user access. | ||
|
||
**GraphQL API:** AWS AppSync provides a fully managed GraphQL API, allowing for efficient data querying and real-time updates. It simplifies interactions with the database and supports offline data synchronization. | ||
|
||
### IAM Roles and Users: | ||
|
||
**IAM Integration:** AWS Identity and Access Management (IAM) is used to manage permissions and control access to AWS resources. IAM roles and users are configured to ensure secure and precise access controls for different parts of the application. | ||
|
||
**Access Management:** Granular access policies are set up for different AWS services, enhancing security and operational efficiency. | ||
|
||
### Deployment & Infrastructure: | ||
|
||
**Hosting:**The application is deployed on AWS Amplify, providing a streamlined deployment process with continuous integration and delivery (CI/CD) capabilities. | ||
|
||
**Serverless Functions:**AWS Lambda functions are employed to handle backend logic and integrate with the GraphQL API, supporting a serverless architecture that scales automatically. | ||
|
||
**Project Strucutre:** | ||
|
||
<img width="481" alt="Screenshot 2024-07-27 at 1 36 20 PM" src="https://github.com/user-attachments/assets/4b2f5303-9af8-4cd0-8798-b828e55c1181"> | ||
|
||
|
||
|
111 changes: 111 additions & 0 deletions
111
New_APIs/Amplify-fullstack-API/amplify/#current-cloud-backend/amplify-meta.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
{ | ||
"providers": { | ||
"awscloudformation": { | ||
"AuthRoleName": "amplify-mynotes-staging-b2b56-authRole", | ||
"UnauthRoleArn": "arn:aws:iam::339712714202:role/amplify-mynotes-staging-b2b56-unauthRole", | ||
"AuthRoleArn": "arn:aws:iam::339712714202:role/amplify-mynotes-staging-b2b56-authRole", | ||
"Region": "ap-southeast-2", | ||
"DeploymentBucketName": "amplify-mynotes-staging-b2b56-deployment", | ||
"UnauthRoleName": "amplify-mynotes-staging-b2b56-unauthRole", | ||
"StackName": "amplify-mynotes-staging-b2b56", | ||
"StackId": "arn:aws:cloudformation:ap-southeast-2:339712714202:stack/amplify-mynotes-staging-b2b56/5d40cab0-4b32-11ef-8fd8-06f396c97ee1", | ||
"AmplifyAppId": "d2nrrgvsn5u7rq" | ||
} | ||
}, | ||
"api": { | ||
"mynotes": { | ||
"dependsOn": [], | ||
"output": { | ||
"authConfig": { | ||
"additionalAuthenticationProviders": [], | ||
"defaultAuthentication": { | ||
"apiKeyConfig": { | ||
"apiKeyExpirationDays": 7 | ||
}, | ||
"authenticationType": "API_KEY" | ||
} | ||
}, | ||
"GraphQLAPIIdOutput": "cye6ubdc6bgxddnh7pcgwbmubi", | ||
"GraphQLAPIEndpointOutput": "https://n5edpqals5aohotum3xa72osli.appsync-api.ap-southeast-2.amazonaws.com/graphql", | ||
"GraphQLAPIKeyOutput": "da2-kehm2qcqofd3besloumulb5vlm" | ||
}, | ||
"providerPlugin": "awscloudformation", | ||
"service": "AppSync", | ||
"lastPushTimeStamp": "2024-07-26T15:57:37.537Z", | ||
"providerMetadata": { | ||
"s3TemplateURL": "https://s3.amazonaws.com/amplify-mynotes-staging-b2b56-deployment/amplify-cfn-templates/api/cloudformation-template.json", | ||
"logicalId": "apimynotes" | ||
} | ||
} | ||
}, | ||
"auth": { | ||
"mynotesccae4f3b": { | ||
"customAuth": false, | ||
"dependsOn": [], | ||
"frontendAuthConfig": { | ||
"mfaConfiguration": "OFF", | ||
"mfaTypes": [ | ||
"SMS" | ||
], | ||
"passwordProtectionSettings": { | ||
"passwordPolicyMinLength": 8, | ||
"passwordPolicyCharacters": [] | ||
}, | ||
"signupAttributes": [ | ||
"EMAIL" | ||
], | ||
"socialProviders": [], | ||
"usernameAttributes": [], | ||
"verificationMechanisms": [ | ||
"EMAIL" | ||
] | ||
}, | ||
"providerPlugin": "awscloudformation", | ||
"service": "Cognito", | ||
"output": { | ||
"UserPoolId": "ap-southeast-2_i03FxeqOd", | ||
"AppClientIDWeb": "6bm1hrehfqg90vta1ifbgjr00h", | ||
"AppClientID": "1d896vivvec1d0hvqrk6lptel2", | ||
"IdentityPoolId": "ap-southeast-2:9db4441d-2163-440e-adba-e23a3fe75fd4", | ||
"UserPoolArn": "arn:aws:cognito-idp:ap-southeast-2:339712714202:userpool/ap-southeast-2_i03FxeqOd", | ||
"IdentityPoolName": "mynotesccae4f3b_identitypool_ccae4f3b__staging", | ||
"UserPoolName": "mynotesccae4f3b_userpool_ccae4f3b" | ||
}, | ||
"lastPushTimeStamp": "2024-07-26T15:57:44.008Z", | ||
"providerMetadata": { | ||
"s3TemplateURL": "https://s3.amazonaws.com/amplify-mynotes-staging-b2b56-deployment/amplify-cfn-templates/auth/mynotesccae4f3b-cloudformation-template.json", | ||
"logicalId": "authmynotesccae4f3b" | ||
}, | ||
"lastPushDirHash": "Y2leA1T/brYAcNS4RPXQwBzzY/Q=" | ||
} | ||
}, | ||
"function": { | ||
"S3Triggerdc42a5d7": { | ||
"service": "Lambda", | ||
"providerPlugin": "awscloudformation", | ||
"build": true, | ||
"lastBuildTimeStamp": "2024-07-26T15:55:51.984Z", | ||
"lastBuildType": "PROD", | ||
"lastPackageTimeStamp": "2024-07-26T15:55:52.014Z", | ||
"distZipFilename": "S3Triggerdc42a5d7-6a475541666d35456861-build.zip", | ||
"s3Bucket": { | ||
"deploymentBucketName": "amplify-mynotes-staging-b2b56-deployment", | ||
"s3Key": "amplify-builds/S3Triggerdc42a5d7-6a475541666d35456861-build.zip" | ||
}, | ||
"providerMetadata": { | ||
"s3TemplateURL": "https://s3.amazonaws.com/amplify-mynotes-staging-b2b56-deployment/amplify-cfn-templates/function/S3Triggerdc42a5d7-cloudformation-template.json", | ||
"logicalId": "functionS3Triggerdc42a5d7" | ||
}, | ||
"lastPushTimeStamp": "2024-07-26T15:57:44.008Z", | ||
"output": { | ||
"LambdaExecutionRoleArn": "arn:aws:iam::339712714202:role/S3Triggerdc42a5d7LambdaRoledc42a5d7-staging", | ||
"Region": "ap-southeast-2", | ||
"Arn": "arn:aws:lambda:ap-southeast-2:339712714202:function:S3Triggerdc42a5d7-staging", | ||
"Name": "S3Triggerdc42a5d7-staging", | ||
"LambdaExecutionRole": "S3Triggerdc42a5d7LambdaRoledc42a5d7-staging" | ||
}, | ||
"lastPushDirHash": "1B2Qj8YebkkXB424dBxxW7J3vvM=" | ||
} | ||
}, | ||
"storage": {} | ||
} |
Oops, something went wrong.