This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
MoreJust Media is a web application built with Vue.js that helps users read articles with awareness of bias, sentiment, and manipulative language. The application:
- Analyzes articles for emotional sentiment, generalizations, clichés, and key phrases
- Provides an enhanced reading experience that highlights potentially biased or emotional content
- Allows users to enter article URLs or topics to analyze
- Has a "Random Article" feature that picks a topic and finds an article to analyze
- Frontend: Vue.js with Vuetify for UI components
- Backend API: External service at morejustmedia.herokuapp.com
- Chrome Extension: Available in the chrome-ext/ directory
-
Views:
Home.vue: Landing pageAnalyze.vue: URL/topic input interfaceReadMode.vue: Enhanced article reading experience
-
Services:
api/: Handles API requests to the backendhairsplitter/: Processes and annotates article texthighlights/: Manages text highlighting and tooltips
-
Components:
Article.vue: Displays article with interactive highlightsInteractiveText.vue: Manages text interactionTip.vue: Shows tooltips for highlighted text
# Project setup - Install dependencies
npm install
# Compiles and hot-reloads for development
npm run serve
# Alternative
npm run dev
# Compiles and minifies for production
npm run build
# Run tests
npm run test
# Lints and fixes files
npm run lint
# Deploy to GitHub Pages
npm run deploy- User enters a URL or topic in the Analyze view
- Application fetches and parses the article content via API
- Content is analyzed for sentiment, entities, key phrases, etc.
- ReadMode view displays the article with interactive highlighting
- Users can hover/click highlighted text to see explanations
The application uses the following endpoints:
/search?q={topic}: Find an article related to a topic/parse?url={url}: Parse an article from a URL/v2/analyse: Analyze parsed article content
- The application is designed to work with a Heroku-based backend
- The project uses Vue Router for navigation
- Data flows from API → Article component → Interactive text highlighting