
La peluche est une application mobile complète pour le partage d'images. Il utilise Expo et React Native pour le frontal, AWS Amplify comme service back-end, et le service API est construit avec GraphQL.
Vidéo de démonstration des fonctionnalités de l'application ici.
Après s'inscrire / s'inscrire, les utilisateurs peuvent effectuer les éléments suivants:
Les utilisateurs sont authentifiés à l'aide de l'amplification de l'amplification de l'amplification AWS AWS.
Les utilisateurs ont redirigé vers le seul écran de l'application: le flux.
Lorsqu'un utilisateur télécharge une image:
Lorsqu'un utilisateur signale un contenu inapproprié:
Lorsqu'un utilisateur aime / souligne une image:
Lorsqu'un utilisateur supprime une image:
Lorsqu'un utilisateur actualise le flux:
Pour exécuter cette application sur votre machine locale, vous avez besoin des outils suivants:
EXPO CLI
npm install -g expo-cliCompte AWS
Nœud js avec npm
AWS Amplify CLI
npm install -g @aws-amplify/cliamplify configure (lien pour une vidéo étape par étape). 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.
L'AWS Amplify CLI créera un pool d'utilisateurs et un pool d'identité Amazon Cognito, un seau Amazon S3 pour stocker les images de chaque utilisateur et une AWS AppSync GraphQL qui utilise Amazon DynamoDB pour stocker les métadonnées sur les images (IE Nom de seau, likes, drapeaux, propriétaire, date de création ... etc.).
yarn
# or
npm install
src/myKeys.js de votre projet. const keys = {
accessKey : 'blablabla' ,
secretKey : 'blablabla' ,
}
export default keys expo start --ios
# or
expo start --android
Si l'application s'exécute avec succès, vous devriez pouvoir appuyer sur l'icône de l'appareil photo, permettez l'accès à la bibliothèque de périphériques et sélectionnez une image dans votre appareil. Cela téléchargera l'image sur S3, puis passera un appel GraphQL pour entrer l'enregistrement dans DynamoDB.
Vous pouvez ensuite appuyer sur le bouton Actualiser pour afficher l'image à l'écran.
Vous pouvez aimer / contrairement et signaler les autres photos des utilisateurs, et supprimer vos propres photos.