Skip to content

Commit

Permalink
Merge pull request #350 from Anushkajoshii/feat-amplify_fullstack_api
Browse files Browse the repository at this point in the history
Feat- amplify fullstack api
  • Loading branch information
Kritika30032002 authored Aug 5, 2024
2 parents e21b794 + 8063570 commit c6e40b1
Show file tree
Hide file tree
Showing 123 changed files with 12,250 additions and 0 deletions.
41 changes: 41 additions & 0 deletions New_APIs/Amplify-fullstack-API/README.md
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">



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": {}
}
Loading

0 comments on commit c6e40b1

Please sign in to comment.