# Product Vision & Prototype ## Introduction ## Product Vision Statement **For** any company that needs to accelerate obsolete submition processes, **Who** need to make these submissions processes more efficient for both the company and its customers, improving their user experience and value co-creation and giving them a better and faster way to evaluate submission. **The** Workflow Manager **is a** platform **That** makes it easier and more intuitive to both create new submissions and also process them. **Unlike** what some companies currently have, like email exchanges, that are un-transparent and difficult **Our product** is user-friendly, simple and organized, and will enable for quicker evaluations on the companies' side and for more submissions on the client side, since the process will be clearer and easier. ## Product Vision Board ### Vision Our product is a tool to help companies simplify and speed up submission evaluation processes, that involves passing the submission information through several "checkpoints" in order to reach to an approval. It can be adapted for a specific company, taking into account the different needs of our customers, making sure that it will improve their value co-creation with their clients and enlarging their customer base while making the best use of their resources and time. ### Target Group Our target customers are all companies who have their own submission processes, that are not intuitive nor user-friendly for the participants in that interaction. Our app will have two types of users. On one side, we have the submitters, who submit their content in the platform, in order to be evaluated. On the other side, we have the company workers, responsible for managing the submission processes, and decide whether or not that content is good to be approved or not. ### Needs Many companies have approval processes of their own, to which external or internal users can submit new content, in order to be processed according to a certain workflow.However, not all of those companies have an efficient submission process, that offers a good user experience for both submitters and company process evaluators. - For developers, this tool aims to simplify the process of submitting content for certain company processes, by offering a company-approved form of which data is necessary. It also adds transparency to the evaluation process, so the developers can see the status of their app evaluation. - For companies' evaluators, this tool will help to view in all the content that needs evaluation in an organized manner, and will allow for the companies to create custom-made workflows for their evaluations. - By making it easier to submit and to evaluate the submission, the whole process will be executed faster, reducing delivery time to the company customers. By making the process more intuitive, it may also be an incentive for more external users to submit new content. - This tool can also be arranged to help managing several workflow levels in a company, such as recruitment, making this process much easier and saving time for the company. ### Product The product is divided into 2 parts: - For the company side it has a list of all submission processes and their current status, since the approval process may consist of multiple steps. There is a workflow to be followed to each approval. All that is needed to approve the content is available in the platform. - For the developer side there is every field needed to submit an app, such as, for example, the app name, app icon, name, description, and so on. This project will make it simple and intuitive to both submit new content and evaluate it. It intends to be an user-friendly platform for both parts involved. It is a perfectly feasible project, provided that there is a full multidisciplinary team involved, for the developing, design and services. The languages used are not uncommon and the requirements aren't to tight for the project to become unfeasible. ### Business Goals The first business goal we achieve by developing the product is to target a broader market segment, by opening doors to a new set of companies, that can benefit from an increase in efficiency regarding this kind of workflow management. Furthermore, we take an already existing concept, an "app" submission workflow, re-design it and present it in a more easy to use and to grasp way. This way we have the concept much more accessible to companies in the market. Our product also offers self-sustainability, since it can work and be extended without our support. This creates new business opportunities, by reducing the amount of work the company would have to dispense in future product maintenance. Help our customers broaden their existing client base, improving their productivity, time management and their relationship with their clients while transmitting the values of innovation of HubSight. ## MVP Although our Product Vision has a much broader horizon with respect to its potential in several company departments (Human Resources, Marketplace Management, ...), our MVP will be more focused on a specific scenario provided by our customer, Talkdesk. So, besides the base product, we are already going to integrate some features that might not be useful in every use case, but that work as an extension to the product core. ### The App In its essence, our product is a **digital content submission and validation tool**. Our target are companies looking for a more efficient way to manage digital content submitted on its **marketplace**, where **submitters** contribute with their own products. Our tool aims to provide a centralized and efficient solution, where both the submission and the validation flow are highly customizable and easily adaptable to the company's market context and needs. Furthermore, the whole process can be monitored both by the **submitters** and the **marketplace moderators** through our application, allowing the issue tracking and the communication between both parts to be much more coherent, reliable and less time-consuming. ### Cornerstones #### Digital Content Submission In its essence, this section of our product consists of a submission form, where several types of digital contents could be submitted (like movies, apps, etc), depending on the context in which our application is used. There should be a submission form, defined by the marketplace moderators, which allows new digital content to be submitted with all the relevant specifications. The form consists of some standard input that will either be checked automatically by the application or manually by the marketplace moderators. For example, some of the standard inputs in the form could be a title, brief description, full description, categories, images, videos, etc. #### Custom Workflow Creation An approval workflow using an open-source framework with both automatic and manual checkpoints defined by the marketplace moderators. The automatic checks will evaluate if some measurable and objective requirements are met whereas the manual ones will prompt marketplace moderators to verify and give their approval on that specific checkpoint. Once an approval has been obtained, the workflow will continue to the next checkpoint, eventually end with an approval and subsequent insertion into the marketplace if the marketplace moderators decide that. If a checkpoint fails the workflow process will stop and the submitter will be notified. The aim is to create a flexible and scalable application that supports self-sustainability, where the marketplace moderator will be provided with the ability to easily edit the workflow as their needs change in the future. Since the workflow needs to be highly customizable, detailed documentation on how the marketplace moderator can modify the workflow will be made available. #### Workflow Monitoring **Submitters** This section allows the submitter to monitor the current state of the content he submitted in the application. He will have access to a list with all the contents (applications, movies, video-games, etc) he has submitted so far, along with the current state. Moreover, each submitted content will include a log with more detailed information about each state it went through, with timestamps and descriptions of every action taken. Also, there will be an option to allow the submitter to remove temporarily or permanently the digital content from the marketplace. **Marketplace Moderators** This part is essentially a dashboard with all the instances of the workflow (i.e. all submitted contents) with options to manage each one of them. The marketplace moderators can pause/resume each submission instance, manage manual checkpoints, or even cancel a submission. Additionally, each instance will have a correspondent log stating every event associated with it, along with detailed descriptions and errors occurred. After all of the verifications have been completed, the marketplace moderators will have the final decision of allowing the content to be inserted into their marketplace or not. ## Prototype ### Submission Form ![](https://i.imgur.com/fDNY4Um.png) ### Monitoring Dashboard ![](https://i.imgur.com/clniwVW.png) The entire prototype can be consulted in the following link: https://www.figma.com/proto/E3og8HfRVIybbDP0GwAEWA/Talkdesk-Mockups?node-id=483%3A77&scaling=min-zoom ## Requirements ### Actors - **Submitter:** A submitter is any developer that submits an app to AppConnect Marketplace - **Moderator:** A moderator is a Talkdesk worker that can review submitted apps and manage the existent workflows. ### Digital Content Submission #### Description This app cornerstone is responsible for allowing the submitter to submit digital content (in our case, applications), by making a form with several fields available. #### User Stories - **[US001]** As a submitter I want to be able to see a tutorial in order to understand how the submission process will proceed. (1) - **[US002]** As a submitter I want to submit a digital content approval request in order to eventually be able to publish my content on the marketplace. (13) #### Use case Diagram ![](https://i.imgur.com/bT6B492.png) #### Use case narrative ![](https://i.imgur.com/CR9pAbl.png) ### Custom Workflow Creation #### Description This app cornestone is responsible for allowing the user to create and edit a workflow instance, adding or removing components as needed. #### Use case Diagram ![](https://i.imgur.com/ztb5vKp.png) #### User Stories - **[US003]** As a marketplace moderator, I want to create a new workflow, so that it can be later instantiated. - **[US004]** As a marketplace moderator, I want to list all the workflows, so that I can easily manage them. - **[US005]** As a marketplace moderator, I want to edit a workflow, so that I can keep it updated with the current needs. - **[US006]** As a marketplace moderator, I want to remove a workflow, so that I can keep the list clean and organised. - **[US007]** As a marketplace moderator, I want to access detailed documentation, so that I can easily understand how to create workflows. ### Workflow Monitoring #### Description This app cornerstone is responsible for showing to the viewer the state of one or more submission processes. The information displayed varies according to the type of user: a submitter will have access to his/her content submission processes, its correspondent current state and other process history; a marketplace moderator will have access to all the current processes, its states, process history and will also have the power to act upon a certain process. ### Use case Diagram ![](https://i.imgur.com/23nhO91.png) #### User Stories ##### Submitter - **[US008]** As a submitter, I want to login into the application in order to access my account information. - **[US009]** As a submitter, I want to view a list of my submissions in order to check their state. - **[US010]** As a submitter, I want to receive a notification through email about my submission in order to know if it has been approved. - **[US011]** As a submitter, I want to filter my list of submissions in order to view my submissions in a more organized way. - **[US012]** As a submitter, I want to search for a specific submission by its name in order to find a specific one among all my submissions. - **[US013]** As a submitter, I want to view a submission process in order to read its submission details. - **[US014]** As a submitter I want to cancel my ongoing submission process in order to make a new submission with corrected information. ##### Marketplace Moderator - **[US015]** As a marketplace moderator, I want to login into the application in order to access my account information. - **[US016]** As a marketplace moderator I want to access a dashboard with all the submitted content in order to manage each one of them - **[US017]** As a marketplace moderator I want to receive a notification on Slack when there is a new submission in order to know if there are new submissions on the application. - **[US018]** As a marketplace moderator, I want to search for a specific submission in order to find a specific one among all the submissions. - **[US019]** As a marketplace moderator, I want to filter the list of submissions in order to view the submissions in a more organized way. - **[US020]** As a marketplace moderator I want to pause each submission process in order to temporarily pause its course in the workflow. - **[US021]** As a marketplace moderator I want to resume each submission process in order to allow it to continue its course in the workflow. - **[US022]** As a marketplace moderator I want to approve a manual checkpoint in order to give my approval to the checkpoint in question. - **[US023]** As a marketplace moderator I want to reject a manual checkpoint in order to give my disapproval to the checkpoint in question. - **[US024]** As a marketplace moderator I want to view the submission process log in order to see every event associated with the process. - **[US025]** As a marketplace moderator I want to view the current workflow configuration in order to know what is its current composition. ## Architecture ![](https://svgshare.com/i/JnJ.svg) As for the technologies: - **React** will be used for the Front End; We chose this technology because it suits the requirements asked in terms of the UI that needs to be developed and the team as good knowledge regarding this technology. - **Flowable** will be used as the Process Engine; We chose this technology in order to take advantage of an already developed mechanism that is proven to work in terms of Process Creation. That way we can focus more on important features related to Talkdesk use case, and further improve the final product so it can be used in a real scenario - **PostgreSQL** will be used for the Database; Flowable provides compatibility with some databases: H2, MySQL, Oracle, PostgreSQL, Mssql and Db2. However, only H2, MySQL and PostgreSQL are open-source. Among these three, we decided to exclude H2 because it doesn't persist the data between multiple executions. Finally, as the project's use cases expect the implementation of some complex queries for the implementation of searches, PostgreSQL is the best option because it has better performance for these purposes.