
Plush es una aplicación móvil completa para compartir imágenes. Utiliza Expo y React Native para la parte delantera, AWS se amplifica como el servicio de fondo, y el servicio API está construido con GraphQL.
Video de demostración de las funcionalidades de la aplicación aquí.
Después de registrarse/iniciar sesión, los usuarios pueden realizar lo siguiente:
Los usuarios se autentican utilizando el flujo de autenticación de AWS de AWS fuera de la caja.
Usuarios un redirigido a la única pantalla de la aplicación: el feed.
Cuando un usuario sube una imagen:
Cuando un usuario marca el contenido inapropiado:
Cuando a un usuario le gusta/no me gusta una imagen:
Cuando un usuario elimina una imagen:
Cuando un usuario actualiza el feed:
Para ejecutar esta aplicación en su máquina local, necesita las siguientes herramientas:
Expo CLI
npm install -g expo-cliCuenta de AWS
Nodo JS con NPM
AWS amplifica CLI
npm install -g @aws-amplify/cliamplify configure (enlace para un video paso a paso). 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.
El AWS Amplify CLI creará un grupo de usuarios de Amazon Cognito e Identity Pool, un cubo de Amazon S3 para almacenar imágenes de cada usuarios y una AWS Appsync GraphQL API que usa Amazon Dynamodb para almacenar metadatos sobre las imágenes (es decir, nombre de balde, gustos, banderas, propietario, fecha de creación ...).
yarn
# or
npm install
src/myKeys.js de su proyecto. const keys = {
accessKey : 'blablabla' ,
secretKey : 'blablabla' ,
}
export default keys expo start --ios
# or
expo start --android
Si la aplicación se ejecuta correctamente, debería poder presionar el icono de la cámara, permitir el acceso a la biblioteca del dispositivo y seleccionar una imagen de su dispositivo. Esto cargará la imagen en S3 y luego hará una llamada GraphQL para ingresar el registro en DynamoDB.
Luego puede presionar el botón Actualizar para mostrar la imagen en la pantalla.
Puede gustar/a diferencia de y marcar imágenes de otros usuarios, y eliminar sus propias fotos.