#3902 Software App Requirements for "MarketSense AI"

#3902 Software App Requirements for "MarketSense AI"

Original Prompts in Google AI Studio:

    1. Create a web application in HTML, JavaScript and CSS to scan the web for financial news and assess sentiment for a specified stock trending over that last 30 days
    2. Change this from 30 days to a user-specified number of days
    3. Add the top 10 technical analysis scores
    4. Add charts for the technical analysis over the specified time period
    5. Add download of report in PNG format

    #3902 Provide the software requirements for this app in markdown format

    Gemini 3 Pro PreviewRan for 48s

    Here are the software requirements for the MarketSense AI application based on the current codebase.


    Software Requirements Specification (SRS)

    Project Name: MarketSense AI
    Version: 1.0

    1. Introduction

    1.1 Purpose

    The purpose of MarketSense AI is to provide investors and traders with real-time, AI-driven financial sentiment analysis and technical analysis estimates for specific stock symbols. The application aggregates recent news via Google Search Grounding to determine market sentiment and generates technical indicator estimates based on price action trends described in search results.

    1.2 Scope

    The application is a client-side Single Page Application (SPA) that interacts directly with the Google Gemini API. It allows users to:

    • Search for a stock ticker symbol.

    • Define a historical time range (1-365 days).

    • View an AI-generated executive summary.

    • Analyze sentiment trends over time.

    • View estimated technical indicators (RSI, MACD, Moving Averages).

    • Access source links for verification.

    • Download the analysis report as an image.

    2. Functional Requirements

    2.1 Stock Search & Configuration

    • FR-01: The system shall allow users to input a stock ticker symbol (e.g., NVDA, AAPL).

    • FR-02: The system shall allow users to specify a time range for analysis in days (Default: 30, Min: 1, Max: 365).

    • FR-03: The system shall validate inputs and prevent submission if the ticker is empty.

    • FR-04: The system shall display a loading state while fetching data from the API.

    2.2 AI Analysis Engine

    • FR-05: The system shall utilize the Google Gemini 2.5 Flash model via the @google/genai SDK.

    • FR-06: The system must utilize the googleSearch tool to retrieve real-time financial news, earnings reports, and analyst ratings.

    • FR-07: The system shall parse the AI response to extract three distinct data formats:

      1. Sentiment Timeline (CSV): Date, Sentiment Score (0-100), and Headline.

      2. Technical Indicators (JSON): Status of 10 specific indicators (RSI 14, MACD, SMA 20/50/200, Bollinger Bands, Stochastic, ADX, Williams %R, CCI) with Buy/Sell/Neutral signals.

      3. Technical Trend Data (CSV): Daily estimated values for RSI and MACD.

    2.3 Dashboard & Visualization

    • FR-08 Executive Summary: Display a text-based summary of the current market sentiment and key drivers.

    • FR-09 Sentiment Score: Display an aggregate "Overall Sentiment Score" (0-100) with a classification label (Bullish > 60, Bearish <= 40, Neutral 41-59).

    • FR-10 Sentiment Chart: Render an Area Chart showing the fluctuation of sentiment scores over the selected time period. Hovering shall reveal specific headlines for that date.

    • FR-11 Technical Overview:

      • Display a Donut Chart summarizing the ratio of Buy, Sell, and Neutral signals.

      • Display a grid of the 10 monitored technical indicators with their current values and signal icons.

    • FR-12 Technical Charts:

      • Render a Line Chart for RSI (14) with reference lines at 30 (Oversold) and 70 (Overbought).

      • Render a Line Chart for MACD showing the MACD line and Signal line.

    • FR-13 Verified Sources: List external links (URLs and Titles) returned by the Google Search Grounding metadata.

    2.4 Reporting & Export

    • FR-14: The system shall allow the user to download the currently visible dashboard as a PNG image.

    • FR-15: The export filename must include the stock symbol and the current date (e.g., NVDA_MarketSense_Report_2023-10-27.png).

    3. Non-Functional Requirements

    3.1 User Interface (UI/UX)

    • NFR-01: The application must utilize a Dark Mode theme (Slate-900 background) for reduced eye strain and professional financial aesthetic.

    • NFR-02: The interface must be responsive and usable on desktop, tablet, and mobile devices.

    • NFR-03: Visual feedback (spinners, opacity changes) must be provided during all asynchronous operations.

    3.2 Performance

    • NFR-04: The dashboard export (screenshot generation) should complete within 3 seconds under normal network conditions.

    • NFR-05: Charts should render immediately upon data availability using the recharts library.

    3.3 Reliability

    • NFR-06: The system must handle API errors (e.g., network timeout, invalid API key) gracefully by displaying a user-friendly error message.

    • NFR-07: The system must handle parsing errors (malformed CSV/JSON from LLM) by logging to the console and avoiding application crashes.

    4. Technical Stack & Dependencies

    4.1 Frontend Framework

    • React 19: Core UI library.

    • TypeScript: For type safety and interface definitions.

    4.2 Styling

    • Tailwind CSS: Utility-first CSS framework for layout and theming.

    • Lucide React: Iconography.

    4.3 Data Visualization

    • Recharts: Composable charting library for React.

    4.4 AI Integration

    • @google/genai: SDK for interacting with Gemini models.

    • Google Search Grounding: Tool enabled within the API call for factual data retrieval.

    4.5 Utilities

    • html2canvas: For DOM-to-Canvas rendering to support the PNG export feature.

    5. Environment Requirements

    • API Key: A valid Google GenAI API Key must be present in the environment variables (process.env.API_KEY).

    Comments

    Popular posts from this blog

    #4297 ISS Astronaut Unable to Speak

    #761 New Ways to Access Online Content, particularly Virtual Reality Content

    #3356 PHP and JavaScript to Retrieve and Set an API_Key