Inspiration

Driven by the 74% of consumers frustrated by opaque corporate ethics, we set out to make brand accountability visible and actionable.

What it does

EthicalLens SG aggregates five core metrics: labor, sourcing, carbon, animal welfare and governance into interactive charts, personalized watchlists, and a natural-language chatbot.

How we built it

  • Streamlit UI with a tabbed layout for Home, Brands, Watchlist, Chatbot, and Dashboard.
  • Plotly Express for rendering all interactive charts (bar, heatmap, scatter).
  • MCP SQL agents executing parameterized SQL against ethical_scores, brand_info, and brand_financials, returning JSON.
  • LLM agent in agent.py translating natural language queries into SQL via the Model Context Protocol.
  • Streamlit session_state to persist watchlists, alert thresholds, chat history, and cached query results.

Challenges we ran into

  • Preventing LLM hallucination by isolating SQL-only MCP agents
  • Balancing rich visuals with performance and mobile responsiveness
  • Manpower and time

Accomplishments that we're proud of

  • In this 2 member team, I was the main programmer and was able to have a workable website.
  • Seamless “Set Alerts” workflow with live pending-alerts counter
  • Four interactive dashboards plus a natural-language SQL chatbot

What we learned

  • The importance of clear state management in Streamlit
  • How to orchestrate multiple agents (MCP and LLM) reliably
  • Designing tooltips and on-hover provenance boosts user trust

What's next for EthicalLens SG

  • A lightweight browser extension for in-page ethics badges
  • Enhanced mobile layout and accessibility improvements
  • Gamification and social sharing to foster ongoing engagement
  • E-commerce integration via a browser extension badge API.
  • Sentiment analysis to analyze real-time sources for data to turn into actual score metrics instead of hardcoding

Built With

Share this project:

Updates