kyma-incubator / kyma-showcase Goto Github PK
View Code? Open in Web Editor NEWKyma Showcase about object-recognition relying on GCP API and Lambda Workflow.
License: Apache License 2.0
Kyma Showcase about object-recognition relying on GCP API and Lambda Workflow.
License: Apache License 2.0
Description
Each picture needs a unique ID assigned to it.
Reasons
We want to reference a specific image using its ID.
Acceptance Criteria
Description
When sending an event fails, it should be resent and an error should be reported.
Reason
We need to resend an event and report an error when sending an event fails.
Acceptance criteria
Description
Test tables idea allows decreasing the huge amount of written code.
Reason
To not duplicate the code and keep the DRY principle it is possible to use Test tables suggested by Filip Strozik in the following PR: #52
Acceptance criteria
Description
As a user, I don't want to see NSFW images on the image details page.
Reason
Users couldn't be able to see NSFW images on the image details page.
Acceptance criteria
Description
As a user, I want to have the upload image area displayed all the time.
Reason
When a user is scrolling the page upload image area isn't displayed.
Acceptance criteria
Description
As a user, I want to see the full image's description including text, objects, labels etc.
Reason
The user should be able to see the full description provided by the GCP of the uploaded photo.
Acceptance criteria:
Description
As a user, I don't want to see all the images on the home page.
Reason
The home page doesn't need to display all uploaded images.
Acceptance criteria
Description
As a user, I want to choose a photo that I want, sometimes more than once.
Reasons
If the user chooses the same photo in the upload input button stays disabled.
Acceptance criteria
Description
Keeping the code's readability and decreasing the chance of making mistakes using env variables.
Reason
Env variables are too generic and can be overridden in accidental situations. Suggested by Filip Strozik in the following PR: #52
Acceptance criteria:
Description
An interface must be implemented that will ease handling errors.
Reasons
Implementation of this interface will improve handling errors.
Acceptance criteria
Additional information:
Description
As a user, I want to see where the landmark is on the map.
Reason
Only coordinates don't look well, the map could be nice for better UX.
Acceptance criteria
Description
As a user, I want the flexibility of choosing the different databases, with ease.
Reasons
Keeping the high quality of the code.
Acceptance Criteria
Description
As a user, I want to know the emotional opinion of the text and I want to get information about the writer's attitude.
Reason
We want to share with users more information about text in objects.
Acceptance criteria
Description
As a user, I want to know when the URL is invalid
Reasons
We will display ErrorPage when the URL is invalid.
Acceptance Criteria
Additional remarks
Description
As a user, I want to have a homepage that displays content available in the database.
Reasons
We want to have a working feed section.
Acceptance Criteria
Additional remarks
Description
As a user, I want to know when my image processing has ended and I can see all information about it.
Reason
The application has to inform the user about the status of processing the image.
Acceptance criteria
Description
The frontend application needs to be tested to keep high quality of the code.
Reasons
Keeping high quality of the code across the whole project.
Acceptance criteria
Description
As a user, I mustn't get access to PUT, POST or GET from the console.
Acceptance criteria
Additional informations
When I made that command, the website has broke:
fetch("https://backend.rac-test.frog-dev.shoot.canary.k8s-hana.ondemand.com/v1/images", { "headers": { "accept": "*/*", "accept-language": "en-US,en;q=0.9,pl;q=0.8,fr;q=0.7", "cache-control": "no-cache", "content-type": "application/json", "pragma": "no-cache", "sec-ch-ua": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"macOS\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-site" }, "referrer": "https://frontend.rac-put.frog-dev.shoot.canary.k8s-hana.ondemand.com/", "referrerPolicy": "strict-origin-when-cross-origin", "body": JSON.stringify({"veruBadFetch": true}), "method": "POST", "mode": "cors", "credentials": "omit" });
Adjust the repository according to following repository guidelines so the structure and settings will look alike, making the maintenance and navigation across multiple repositories easier.
Description
As a user, I want to know that the application is working well.
Reason
The application has to be tested what a real user scenario looks like from start to finish.
Acceptance criteria
Description
Lambda requests images in base64 from DB using the backend.
Reasons
We need the image in base64 to send it to GCP for the proccesing.
Acceptance criteria
Description
The existence of the content of an image should be checked before putting it in the database.
Reason
We need to check if content exists to avoid posting images that don't have one.
Acceptance criteria
Description
As a user, I want the UI & UX to be beautiful and convenient.
Reason
The current website design doesn't look well and should be redesigned.
Acceptance criteria:
Description
We want to get image details/labels in multiple different categories.
Reason
To get more image details we need to trigger more lambdas via event.
Acceptance criteria
Description
As a user, I want to see all informations about the image.
Reason
We want to share with users the informations about analyzing photo.
Acceptance criteria*
Description
Enabling the CI/CD automation in the project.
Reasons
Automating the project building process
Acceptance Criteria
Description
As a user, I need to get information about the wrong URL address.
Reason
It can be problematic when the user provides an invalid URL and doesn't get information about it.
Acceptance criteria
Description
As a user, I want a cohesive documentation of the project.
Reason
We need a descriptive documentation of our project and its details.
Acceptance criteria
Description
Lambda has to send image details to the backend and save it to the database.
Reasons
To process image details we have to save informations in the database.
Acceptance criteria
Description
As a client I'm able to paste a URL from a webpage instead of having to download the file.
Reasons
Increasing ease of use and accessibility
Acceptance Criteria
Additional remarks
First iteration of basic Redis and go integration.
Description
As a user, I want to see the last image upload on top and the rest of the images sorted in the feed.
Reasons
Sorting may give a better usage feeling of the application and the user doesn't have to search his uploaded photo.
Acceptance criteria
Reasons
To be able to easily point out the recognised object in the overall picture.
Description
Location of the object is marked by a box.
Acceptance Criteria
Additional remarks
Description
Methods and files need to be more informative and there should be no repetitions when calling a function.
Reasons
Methods' names and filenames are too general (api.go) and repetitions occur (db.InsertToDB).
Acceptance Criteria
Description
The image details page should be refreshed until all labels, objects etc from GCP are displayed.
Reason
We need to refresh the image details page so that users can see all labels, objects etc got from GCP
Acceptance criteria
Description
Whole service needs to be deployable in Kubernetes.
Reasons
We need to first containerise the frontend in a dockerfile.
Acceptance Criteria
Description
As a user, I want to upload a new image to the system, so that it can be later displayed and processed.
Reasons
We want to upload a new image to the system.
Acceptance Criteria
Additional remarks
Description
As a user, I want to be able to see the image description on the details page.
Reason
We will be displaying the details of the clicked photo.
Acceptance criteria:
Additional remarks:
Description
As a user, I want my image to be processed as quickly as possible.
Reasons
Using events we are able to increase the processing speed by contacting the lambdas using events.
Acceptance Criteria
First iteration of frontend implementation
Description
We want all our lambda essential functionalities unified in one lambda.
Reason
All our essential lambda functions are needed for image processing so they should all respond to the initial event.
Acceptance criteria
Description
As a user, I want my product to be Kyma deployable via Kubernetes.
Reasons
Using Kubernetes in Kyma will enable all the cloud functionalities.
Acceptance Criteria
Description
When I change the extension (example XLSX/PDF) of the file I can post it.
Acceptance criteria
Description
As a user, I want to get details information about the photo.
Reasons
To process an image lambda has to send it to GCP and get a response with detailed information.
Acceptance criteria
Description
As a user, I want to be able to see the photo I clicked on the details page.
Reasons
We will be displaying the image on the image details page.
Acceptance Criteria
Additional remarks
Description
It is necessary that the saved image data can be expanded by labels and descriptions
Reasons
We need to be able to easily edit the image entry by adding labels and descriptions to it
Acceptance Criteria
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.