
Plush adalah aplikasi seluler tumpukan penuh untuk berbagi gambar. Ini menggunakan Expo dan React Native untuk ujung depan, AWS memperkuat sebagai layanan back-end, dan layanan API dibangun dengan GraphQL.
Video demo fungsionalitas aplikasi di sini.
Setelah mendaftar/masuk, pengguna dapat melakukan yang berikut:
Pengguna diautentikasi menggunakan alur otentikasi di luar kotak AWS.
Pengguna yang dialihkan ke satu -satunya layar aplikasi: umpan.
Saat pengguna mengunggah gambar:
Ketika pengguna menandai konten yang tidak pantas:
Saat pengguna menyukai/tidak menyukai gambar:
Saat pengguna menghapus gambar:
Saat pengguna menyegarkan umpan:
Untuk menjalankan aplikasi ini di mesin lokal Anda, Anda memerlukan alat berikut:
Expo Cli
npm install -g expo-cliAkun AWS
Node JS dengan NPM
AWS memperkuat CLI
npm install -g @aws-amplify/cliamplify configure (tautan untuk video langkah demi langkah). 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 akan membuat kumpulan pengguna Amazon Cognito dan kumpulan identitas, ember Amazon S3 untuk menyimpan setiap gambar pengguna dan AWS AppSync GraphQL API yang menggunakan Amazon DynamoDB untuk menyimpan metadata tentang gambar (yaitu nama ember, suka, bendera, pemilik, tanggal pembuatan ... dll).
yarn
# or
npm install
src/myKeys.js dari proyek Anda. const keys = {
accessKey : 'blablabla' ,
secretKey : 'blablabla' ,
}
export default keys expo start --ios
# or
expo start --android
Jika aplikasi berjalan dengan sukses, Anda harus dapat menekan ikon kamera, izinkan akses ke pustaka perangkat, dan pilih gambar dari perangkat Anda. Ini akan mengunggah gambar ke S3 kemudian melakukan panggilan graphql untuk memasukkan catatan ke DynamoDB.
Anda kemudian dapat menekan tombol Refresh untuk menampilkan gambar di layar.
Anda dapat menyukai/tidak seperti dan menandai gambar pengguna lainnya, dan menghapus gambar Anda sendiri.