
Plush هو تطبيق محمول كامل المكاسب لمشاركة الصور. يستخدم Expo و React Native للواجهة الأمامية ، AWS Amplify كخدمة خلفية ، وتم تصميم خدمة API باستخدام GraphQL.
فيديو تجريبي لوظائف التطبيق هنا.
بعد التسجيل/تسجيل الدخول ، يمكن للمستخدمين تنفيذ ما يلي:
يتم مصادقة المستخدمين باستخدام Out Out of the Box AWS Amplify Audlify Flow.
تم إعادة توجيه المستخدمين إلى الشاشة الوحيدة للتطبيق: الخلاصة.
عندما يقوم المستخدم بتحميل صورة:
عندما يقوم المستخدم بإعلام محتوى غير مناسب:
عندما يحب المستخدم/يحتمل أن يكون صورة:
عندما يحذف المستخدم صورة:
عندما يقوم المستخدم بتحديث الخلاصة:
لتشغيل هذا التطبيق على جهازك المحلي ، تحتاج إلى الأدوات التالية:
معرض 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 وتجمع الهوية ، و 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.
يمكنك بعد ذلك الضغط على زر التحديث لعرض الصورة على الشاشة.
يمكنك أن تحب/على عكس صور المستخدمين الآخرين وإعلامهم ، وحذف صورك الخاصة.