
플러시는 사진 공유를위한 풀 스택 모바일 애플리케이션입니다. 엑스포 및 반응 기본을 프론트 엔드에 사용하고 AWS는 백엔드 서비스로 증폭되며 API 서비스는 GraphQL로 구축됩니다.
여기에서 앱 기능의 데모 비디오.
가입/로그인 후 사용자는 다음을 수행 할 수 있습니다.
사용자는 상자 밖에서 AWS가 인증 흐름을 증폭시키는 것을 사용하여 인증됩니다.
사용자는 앱의 유일한 화면 인 피드로 리디렉션되었습니다.
사용자가 사진을 업로드 할 때 :
사용자가 부적절한 컨텐츠를 표시하는 경우 :
사용자가 사진을 좋아하거나 좋아하지 않는 경우 :
사용자가 사진을 삭제할 때 :
사용자가 피드를 새로 고침 할 때 :
로컬 컴퓨터 에서이 앱을 실행하려면 다음 도구가 필요합니다.
엑스포 클리
npm install -g expo-cliAWS 계정
NPM이있는 노드 JS
AWS는 CLI를 증폭시킵니다
npm install -g @aws-amplify/cliamplify configure (단계별 비디오의 링크). git clone https://github.com/yhenni1989/plush
cd plush
yarn add aws-amplify aws-amplify-react-native
# or
npm install aws-amplify aws-amplify-react-native
amplify init

amplify add auth
# When prompt, choose: Yes, use the default configuration.
amplify add storage
# Choose: Content (Images, audio, video, etc.)
# Give access to only authenticated users.
# Give users read/write acces.
amplify add api
# Choose GraphQL as the API service.
# Choose an authorization type for the API: Amazon Cognito User Pool
# Do you have an annotated GraphQL schema? Yes
# Provide your schema file path: src/graphQL/schema.graphql
type Picture @model {
id : ID !
pictureOwnerId : String !
pictureOwnerUsername : String !
visibility : Visibility
file : S3Object
likes : [ Like ] @connection ( name : " PictureLikes " )
flags : [ Flag ] @connection ( name : " PictureFlags " )
}
type Like @model {
id : ID !
likeOwnerId : String !
likeOwnerUsername : String !
picture : Picture @connection ( name : " PictureLikes " )
}
type Flag @model {
id : ID !
flagOwnerId : String !
flagOwnerUsername : String !
picture : Picture @connection ( name : " PictureFlags " )
}
type S3Object {
bucket : String !
region : String !
key : String !
uri : String !
}
enum Visibility {
public
private
} amplify push

Do you want to generate code for your newly created GraphQL API: No.
AWS 증폭 CLI는 Amazon Cognito User Pool 및 Identity Pool, 각 사용자 사진을 저장하는 Amazon S3 버킷 및 Amazon DynamoDB를 사용하여 그림에 대한 메타 데이터를 저장하는 AWS AppSync GraphQL API를 생성합니다 (예 : 버킷 이름, 좋아요, 소유자, 창조 날짜 등).
yarn
# or
npm install
src/myKeys.js 파일에 액세스 및 비밀 키를 복사하십시오. const keys = {
accessKey : 'blablabla' ,
secretKey : 'blablabla' ,
}
export default keys expo start --ios
# or
expo start --android
응용 프로그램이 성공적으로 실행되면 카메라 아이콘을 누르고 장치 라이브러리에 액세스 할 수 있고 장치에서 사진을 선택할 수 있어야합니다. 이렇게하면 그림을 S3에 업로드 한 다음 GraphQL 호출을 통해 레코드를 DynamODB에 입력합니다.
그런 다음 새로 고침 버튼을 눌러 화면에 그림을 표시 할 수 있습니다.
다른 사용자 사진을 좋아하거나 플래그하고 자신의 사진을 삭제할 수 있습니다.