Sprint 0 - JuanJoseBotero/Merko GitHub Wiki

Table of Contents

1. Project Overview

1.1. Description of the problem and its software solution

1.1.1. Problem

One of the main challenges in conducting market analysis is the significant amount of time it takes due to the overwhelming volume of data and its decentralization. Information is often scattered across multiple sources, such as news outlets, social media, financial reports, and market databases, which makes it difficult to gather and process efficiently. As a result, analysts spend more time collecting and organizing data than generating insights, delaying strategic decision-making and reducing overall agility in responding to market changes.

1.1.2. Solution

Our solution is an application that streamlines market analysis through the use of AI-powered prompt templates. Users can select and customize these templates to fit their specific needs, allowing the system to automatically gather, process, and analyze relevant market data within the platform. By centralizing and simplifying this process, the application drastically reduces the time and effort required for research. The results are presented in a clear and dynamic dashboard, giving users fast, actionable insights without the need to manually search through decentralized sources.

1.2. Work Team

Name Roles Email
Juan José Botero García Developer - Product Designer - Tester [email protected] - [email protected]
Samuel Villa Valencia Developer - Analyst/Scrum Master [email protected] - [email protected]
Darieth Farid Sánchez Velásquez Developer - UX [email protected] - [email protected]
Valentina Benitez Zapata Developer - Arquitect [email protected]

1.3. Target Audience and Context

1. Customer User / Market Analyst

Profile: Professionals, entrepreneurs, or companies that need to understand the market, trends, and competition.

Objective: Obtain accurate and processed information to make strategic decisions.

Interaction:

  • Selection and customization of prompt templates.

  • Viewing results in dashboards.

2. System Administrator

Profile: Technical or support manager of the platform.

Objective: Manage users, templates, permissions, and system performance.

Interaction:

  • Register, delete, and modify accounts.

  • Configure integrations and data sources.

  • Monitor performance.

3. Developer / Technical Team

Profile: Platform development team.

Objective: Improve, update, and maintain the application.

Interaction:

  • Implement new features.

  • Optimize integrations with external APIs.

  • Maintain servers and security.

Software Systems that will Interact

  • Web Front-end: React (graphical user interface).

  • Back-end: Django and Django REST framework (request processing, logic handling, and APIs).

  • Database: dbsqlite3 (user data and configuration storage).

  • AI APIs: OpenAI API or other LLM provider for market analysis.

Hardware that will interact

  • AWS Cloud Server: Hosts backend, database, and processing.

  • User Computer: Desktop or laptop device with web browser.

  • Mobile Devices: Responsive version of the site.

  • External API Servers: Provide real-time market data.

1.4. Process of Interaction

DiagramasP2-Diagrama de Flujo drawio

1.5. Glossary

TERM DEFINITION
API Application Programming Interface: Protocol with a set of rules, used to communicate applications among each other.
Prompt Template Pre-designed prompt structure that guides the user in providing only the key information needed for the AI to perform a specific market analysis
LLM Large Language Model: Area of the artificial intelligence trained to understand and generate human language.
Market analysis The process of studying a specific market within an industry to understand its dynamics, including customer needs, market trends, size, growth potential, competition, and other key factors.
Objective Specific and measurable goal that an user aims to achieve.
Prompt The request sent to the LLM composed by specific information provided by the user.
Dashboards Visual interfaces that display key data and metrics in a clear, organized, and interactive format. In the context of market analysis, dashboards present the results of research and AI-driven insights.
Commercial area Responsible for managing all activities related to the sale of products or services, developing market strategies, and maintaining customer relationships.

2. Needs Assessment

2.1 Functional requirements

2.1.1 Requirements

UID Requirement Description
FR01 If the user wants to access the catalog of prompts the system must display at least 5 predefined prompts that are fully customizable and easy to navigate.
FR02 If the user wants to configure a prompt the system must allow the user to edit parameters such as geography, customer type, sector, among others, so that the analysis fits the needs of their business.
FR03 If the user selects and configures a prompt the system must allow the AI agent to generate a structured and precise analysis that is clear and understandable.
FR04 If the user wants to complement analyses the system should allow the AI to gather external information via web scraping from reliable sources to integrate it in the dashboard.
FR05 If the user wants to see the results, the system must display a visual dashboard that includes graphs, tables, balance sheets, and projections after processing the analysis to facilitate interpretation.
FR06 If the user wants to preview an instruction before executing it, the system could display a dynamically updated preview with a clear button to confirm and send it to the AI agent.
FR07 If the user wants an import and supply chain analysis the AI must evaluate imports, distributors, product categories, and volumes to display results on the dashboard.
FR08 If the user wants a demand analysis the AI must forecast demand dynamics, identify risks and growth levers to show projections on the dashboard.
FR09 If the user wants a growth opportunity analysis the AI must identify, prioritize, and rank opportunities to display insights visually on the dashboard.
FR10 If the user wants a customer analysis the AI must perform segmentation, churn modeling, and provide value propositions with results displayed on the dashboard.
FR11 If the user wants a competitive analysis the AI must gather competitor insights, financial overviews, and market opportunities to show them in the dashboard.
FR12 If the user wants a financial analysis the AI must process financial data, predict risks and trends, and present the results in the dashboard with comparative visual formats.
FR13 If the user wants to log in the system could provide account creation and login forms, validate credentials, maintain sessions, and allow logout from the home page.
FR14 If the user wants to save analyses the system could allow saving them in the dashboard after login, display them in a list, and provide the option to delete them.

2.1.2 Documentation

  • Initial Requirements Definition: One of the main sessions to define the overall scope and functionalities of the project took place during a meeting with the stakeholder on July 31st. With the permission of all attendees, the video of this meeting was recorded and shared as evidence. Meeting Here
  • Prioritization Technique: The MoSCoW method was used to prioritize requirements (Must have, Should have, Could have, Won’t have). Additionally, complementary techniques such as User Story Mapping and Acceptance Criteria Workshops were applied to ensure clarity and alignment.
  • Team Involvement: The requirements gathering process involved the entire project team, ensuring that multiple perspectives and expertise were considered, some screenshots for evidence: evidenciap2 evidencia2p2
  • Refinement Process: After the initial stakeholder meeting, additional sessions were held between the team to refine and detail the requirements further, focusing on feasibility and alignment with business objectives.

2.2 Background Check

1. Tableau

  • Access URL: https://www.tableau.com
  • Description: Displays interactive dashboards with clean and highly customizable visualizations. It is specialized in visual and interactive analysis, offering an intuitive drag-and-drop interface and pre-designed dashboards.
  • Differentiator: Does NOT include web scraping to complement its analysis and licenses are very expensive and mainly designed for enterprise-level clients.

2. Qlik Sense

  • Access URL: https://www.qlik.com/us
  • Description: AI-powered analytics and robust data integration solutions tailored to meet the evolving needs of enterprise organizations.
  • Differentiator: Does NOT include web scraping capabilities.

3. Dovetail

  • Access URL: https://dovetail.com/
  • Description: AI-native software and agents that instantly turn every customer interaction into insights that drive action.
  • Differentiator: Does NOT include web scraping features and business model is subscription-based (monthly plans).

3. User Story Mapping and Product Backlog

3.1 Story Mapping

User story mapping Merko

  • See the board in Miro

3.2 Backlog

3.3 Sprint 1 planning


User Story: US01 - Prompts Catalog

Description:
As a sales employee, I want to access a catalog of configurable prompts to analyze opportunities for growth and increased sales.

Tasks

  • Create database structure for predefined prompts
  • Implement prompt configuration UI
  • Display at least 5 predefined prompts
  • Add preview functionality for each prompt
  • Ensure navigation is visual and user-friendly

Acceptance Criteria

  • The system must display at least 5 predefined prompts that are fully configurable.
  • Users must be able to view the overview of each prompt before selecting it.
  • The interface must be visual and easy to navigate.

Effort Estimation: LOW

Responsible: Juan Jose Botero


User Story: US02 - Message Parameterization

Description:
As a user, I want to configure the parameters of each message so that the analysis adapts to the needs of my business.

Tasks

  • Design input form for parameters (geography, customer type, sector, etc.)
  • Implement dynamic text updates while configuring
  • Display message preview during parameterization
  • Add optional section for additional information

Acceptance Criteria

  • The system must display variables that the user can edit (geography, customer type, sector, among others).
  • The message text must be dynamically updated while being configured.
  • The system must display the message while it is being parameterized.
  • The system must display a section where the user can optionally add additional information.

Effort Estimation: MEDIUM

Responsible: Samuel Villa


User Story: US03 - Analysis with AI

Description:
As a user, I want the AI agent to generate an analysis based on my selected and parameterized prompts.

Tasks

  • Connect AI agent with parameterized prompts
  • Ensure structured and accurate results
  • Format results for commercial readability
  • Test AI output for different prompt configurations

Acceptance Criteria

  • The AI agent must return a structured and accurate analysis for each prompt.
  • The result must be clear, accurate, and understandable for the commercial area.

Effort Estimation: HIGH

Responsible: Darieth Sanchez


User Story: US07 - Import and Supply Chain Analysis Prompt

Description:
As a user, I want the AI to perform an import and supply chain analysis to better understand market dynamics and distributors.

Tasks

  • Collect and preprocess import data
  • Implement AI analysis for packaging, containers, and categories
  • Identify importers and volumes
  • Analyze distributor dynamics (relationships, customer mix, etc.)
  • Display detailed results with charts on the dashboard

Acceptance Criteria

  • The AI must analyze the dynamics of glass imports, packaging type, containers, and product categories.
  • The system must identify who is importing and the associated volumes.
  • The AI must analyze distributor dynamics (relationships, customer mix, segments, and imports vs. local production).
  • The analysis must determine whether distributor customers are potential customers for the user.
  • The results must include granular information (competitors, customers, capacity, location, color, work family).
  • The results must be displayed on the dashboard using appropriate graphs.

Effort Estimation: LOW

Responsible: Darieth Sanchez


User Story: US08 - Demand Analysis and Forecasting Prompt

Description:
As a user, I want AI to perform demand analysis and forecasting to improve the accuracy of business planning.

Tasks

  • Gather demand-related data
  • Train predictive models for demand forecasting
  • Identify positive trends and risks
  • Generate long-term demand projections
  • Display forecast results with charts on the dashboard

Acceptance Criteria

  • AI must analyze demand dynamics to support forecasting.
  • The system must predict positive trends and potential risks, not just growth.
  • AI must run predictive models to identify growth levers.
  • The analysis must include long-term demand projections.
  • Results must be displayed on the dashboard using appropriate graphs.

Effort Estimation: LOW

Responsible: Valentina Benitez


User Story: US09 - Growth Opportunity Analysis Prompt

Description:
As a user, I want AI to identify and prioritize growth opportunities to support strategic decision-making.

Tasks

  • Collect business intelligence data
  • Implement ranking algorithm for growth opportunities
  • Generate insights on new products, customers, or categories
  • Display results with clear indicators on the dashboard

Acceptance Criteria

  • AI must prioritize and rank growth opportunities based on the data collected.
  • The system must generate insights into the development of new products, customers, or categories.
  • The AI must identify sources of market intelligence using analytical models.
  • The results must be displayed with clear visual indicators on the dashboard.

Effort Estimation: LOW

Responsible Juan Jose Botero


User Story: NFUS16 - Testability

Description:
As a stakeholder, I want the application to have different types of tests to ensure its proper functioning and quality.

Tasks

  • Implement unit tests for each module
  • Create integration tests (prompts → AI → dashboard)
  • Set up functional tests for main user flows
  • Document test results and coverage

Acceptance Criteria

  • Unit tests must be implemented for each module of the application, ensuring that individual functions perform as expected.
  • Integration tests must be performed to validate that the modules interact correctly with each other (prompts → AI → dashboard).
  • Functional tests must be performed to ensure that user flows meet the requirements established.

Effort Estimation: MEDIUM

Responsible: Valentina Benitez


4. Architectural Design

4.1. Scope

The proposed system is based on the creation of a market agent with a certain level of customization, thanks to prompts with variable words. Its main objective is to collect information on specific topics through AI queries, trend applications such as Google Trends, or techniques such as web scraping. The system must deliver this information processed and represented in statistical diagrams to guide experts in their decision-making.

Features included in this Scope

  • Creation of dashboards: Users will be able to create different types of dashboards based on the classification of the prompts chosen to collect information.

  • Custom prompts: Users can edit certain keywords to gather specific information on the required topic, as well as add extra information to get a better response from the agent.

  • Processed data: In order to make the data more readable for decision-making based on expert criteria, it will be represented using different diagrams in a clear and concise manner.

  • Dashboard history: Users can view and save data from the dashboards to keep track of and gain insight into how the market changes over time.

System Boundaries:

  • Dependence on access to information: The system will be heavily dependent on public information accessible through the technologies that will be used, so the result may vary from what is expected.

Minimiun Viable Producto (MVP): The MVP of the project will consist of a web platform that allows users to enter keywords into prompt templates to obtain a basic market analysis. This initial version will include a simple interface that will send the keyword to the backend. The backend will consult Google Trends to obtain trend data and use an artificial intelligence API to generate a summary of the topic. The results will be displayed clearly on the frontend, allowing the user to better interpret the data.

4.2. System Dimensions and Nonfunctional Requirements

System Dimension: The MVP version of the system will be designed to handle up to 5 simultaneous users. It is expected to receive between 1 and 5 requests per second, each generating responses with average response times of 2 to 4 seconds. These requests involve calls to external APIs such as Google Trends or AI, so moderate latency will be accepted.

Nonfunctional Requirements:

User-Friendly: The system must have an intuitive and user-friendly interface. Navigation must be simple, clear, and consistent throughout the site, allowing users to access any module in a maximum of four clicks.

Acceptance criteria:

  • The interface must have intuitive and accessible buttons.
  • All system navigation must require a maximum of 4 clicks to access any module or section.
  • The visual design must be consistent throughout the application: same color palette, uniform fonts, and consistent button styles.
  • There must be a clear navigation system, with a main menu visible in all views.
  • All messages (error, confirmation, and help) must be written in an understandable way and in the main language of the application.

System testability: The system must allow for the implementation of different types of tests (unit, integration, and functional) that guarantee the correct functioning of its components and the overall quality of the software.

Acceptance criteria:

  • Unit tests must be implemented for each module of the system, verifying the expected behavior of individual functions.
  • Integration tests must be performed to validate the correct interaction between system modules (e.g., flow prompts → AI → dashboard).
  • Functional tests must be performed to ensure that user flows meet the requirements defined in the user stories.

System maintainability: The system must be easily maintainable, allowing future developers to understand and modify the code without difficulty.

Acceptance criteria:

  • The source code must be clearly documented, using descriptive variable and function names, as well as comments where necessary.
  • The system architecture must be modularized, facilitating its understanding and modification.
  • All dependencies and external libraries must be declared and versioned in a file such as requirements.txt or package.json.
  • The repository must include a README file with clear instructions for installing, using, testing, and deploying the system.

System extensibility: The system must be easily extensible, allowing the incorporation of new functionalities, prompts, or modules without compromising stability or requiring significant rewriting of existing code.

Acceptance criteria:

  • The system architecture must be modularized, facilitating the addition of new components such as prompts, filters, or dashboards.
  • A decoupled design must be used, allowing for the modification or expansion of functionalities without altering the core of the system.
  • The application must have clear technical documentation so that new developers can understand and incorporate changes without difficulty.

System security: The system must guarantee security in communication and data handling, protecting both the user and the integrity of the system against common threats.

Acceptance criteria:

  • All communications between the frontend, backend, and external APIs must be carried out using the HTTPS protocol, ensuring the encryption of transmitted data.
  • User input must be properly validated and sanitized, avoiding vulnerabilities such as code injection (SQL injection, XSS, etc.).

fault tolerance: The system must be able to continue functioning stably in the event of external service failures.

Acceptance criteria:

  • The system must implement fault tolerance mechanisms so that if an external API fails (e.g., Google Trends or AI), the backend does not stop or generate fatal errors; it must deliver a friendly error message or use a fallback if possible.

4.3. Domain Model:

image

4.4. Description of the Components:

Components of the Presentation Layer:

  • prompt_selector: Select one of the available prompts.
  • prompt_editor: Edit the variable fields of the selected prompt.
  • api_service: HTTPS connection with Django.
  • dashboard: Display the "opportunities" to the Sales Department.

Components of the Logic Layer:

  • controller: Receive and respond to HTTPS requests.
  • search_orchestrator: Orchestrate external services.
  • opportunity_analyzer: Analyze information and extract opportunities.
  • manager: Encapsulate data access (ORM).

Components of the Persistence Layer: More details in the Domain Model.

Components of the Data Access Layer: External services.

4.5. Components Diagram:

Diagrama de Componentes

4.6. Architecture type:

The architecture is based on a layered architecture (4 layers) that are distributed and connected as follows:

    1. Presentation layer (Frontend) = Technologies such as React, Typescript, and Tailwind would be used, connected to the logic layer
    1. Logic layer (Backend): where Django REST would be used to connect to information sources and process it, connected to the persistence layer
    1. Persistence layer (Database): We would use dbsqlite3 provided by Django, which stores information from the data access layer and the logic layer, as well as providing responses to the logic layer
    1. Data access layer: Where we would use everything that can provide us with information, such as APIs with AI, web scraping, or the Google Trends API, connected to the persistence layer

4.7. Architecture Diagram:

Arquitectura por Capas

5. Interfaces Design

5.1. Prototype

Home

MacBook Air - 1

Prompts selection section

MacBook Air - 2

Prompt variable selection section

MacBook Air - 3

Dashboard section

MacBook Air - 4

5.2. Prototype testing

Archivo.a.mp4.mp4

6. Presentation

  • See the presentation here
⚠️ **GitHub.com Fallback** ⚠️