← All projects

AI Engineering · Full-Stack

StockIQ

AI-assisted stock research for Ghana (GSE), Nigeria (NGX), South Africa (JSE) and US markets.

Status
Completed
Year
2026
Role
Designer and developer
Client
Independent project

01

Overview

A React client and an Express server. The server pulls live prices (GSE and NGX straight from the exchanges' own public market-data endpoints), merges them with curated GSE fundamentals, and streams a Gemini-written analysis to the browser over server-sent events. Results are cached so repeat requests stay fast and cheap.

  • React
  • Vite
  • Tailwind CSS
  • Node.js
  • Express
  • Google Gemini API
  • Server-Sent Events
  • Vercel
  • GitHub Actions

02

The challenge

Free market-data APIs such as Yahoo Finance don't cover the Ghana Stock Exchange or the Nigerian Exchange, so retail investors there have little structured research tooling.

  • Reliable data for markets that mainstream APIs ignore
  • Keeping AI output tied to supplied data instead of free-form opinion

03

System requirements

  • Market dashboard and signal scan per market (GSE, NGX, JSE, US)
  • AI stock screener over a curated list of listed companies
  • Per-stock analysis grounded in live price data and GSE fundamentals
  • Streaming responses so analysis appears as it is written
  • Latest-filing checks for GSE annual reports

04

Solution architecture

Responsibility

React + Vite client

Dashboard, stock search, screener and analysis hub. Deployed to GitHub Pages by a GitHub Actions workflow.

05

Implementation

  • StockIQ market dashboard for the Ghana Stock Exchange, showing AI-generated Buy, Hold and Sell groupings. Demo output, not financial advice.
    StockIQ market dashboard for the Ghana Stock Exchange, showing AI-generated Buy, Hold and Sell groupings. Demo output, not financial advice.

06

Technical decisions

  • Use the exchanges' own public endpoints for GSE and NGX prices, since mainstream APIs don't cover them
  • Stream over server-sent events instead of waiting for a full response
  • Keep the Gemini model configurable with fallbacks so a model change needs no code change
  • Cache by response type with different lifetimes to limit LLM cost and latency

07

Results and validation

Content needed: measured results with period and method. Never estimated.

Evidence

  • Live frontend and API (the API's /api/health responds)
  • Public repository with client, server and deploy workflow

08

Lessons learned

Content needed: what you would do differently

Content checklist (remove once filled)

  • A screenshot of a single-stock analysis and the screener
  • Any usage numbers, if they exist
  • How analysis quality is checked. AI output is not financial advice; add a disclaimer on the live app if missing

09

Related work

Project 1 of 12