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
Log in or sign up for Devpost to join the conversation.