
Plush เป็นแอปพลิเคชั่นมือถือเต็มรูปแบบสำหรับการแชร์รูปภาพ มันใช้ Expo และ React Native สำหรับส่วนหน้า AWS ขยายเป็นบริการแบ็คเอนด์และบริการ API ถูกสร้างขึ้นด้วย GraphQL
วิดีโอสาธิตของฟังก์ชันแอพที่นี่
หลังจากลงทะเบียน/ลงชื่อเข้าใช้ผู้ใช้สามารถดำเนินการดังต่อไปนี้:
ผู้ใช้จะได้รับการรับรองความถูกต้องโดยใช้ Out of the Box AWS ขยายโฟลว์การรับรองความถูกต้อง
ผู้ใช้เปลี่ยนเส้นทางไปยังหน้าจอเดียวของแอพ: ฟีด
เมื่อผู้ใช้อัปโหลดรูปภาพ:
เมื่อผู้ใช้ตั้งค่าสถานะเนื้อหาที่ไม่เหมาะสม:
เมื่อผู้ใช้ชอบ/ไม่เหมือนรูปภาพ:
เมื่อผู้ใช้ลบรูปภาพ:
เมื่อผู้ใช้รีเฟรชฟีด:
ในการเรียกใช้แอพนี้บนเครื่องในพื้นที่ของคุณคุณต้องใช้เครื่องมือต่อไปนี้:
Expo CLI
npm install -g expo-cliบัญชี AWS
โหนด JS กับ NPM
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 Amplify CLI จะสร้างพูลผู้ใช้ Amazon Cognito และ Pool Identity Pool, Bucket Amazon S3 เพื่อจัดเก็บรูปภาพผู้ใช้แต่ละคนและ AWS AppSync GraphQL API ที่ใช้ Amazon DynamoDB เพื่อจัดเก็บข้อมูลเมตาเกี่ยวกับรูปภาพ
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
จากนั้นคุณสามารถกดปุ่มรีเฟรชเพื่อแสดงภาพบนหน้าจอ
คุณสามารถชอบ/แตกต่างจากและตั้งค่าสถานะรูปภาพผู้ใช้รายอื่นและลบรูปภาพของคุณเอง