MIACT is a locally executable, lightweight data aggregation and analysis tool designed to fetch, compare, and summarize information from multiple web sources using asynchronous scraping and Natural Language Processing (NLP) techniques.
To reduce research fatigue by providing a consolidated view of objective facts and subjective opinions on products and news topics, highlighting conflicting claims across different sources.
- Frontend: React (Vite) with Lucide Icons and Tailwind-inspired styling.
- Backend: FastAPI (Python) for high-performance asynchronous orchestration.
- Database: PostgreSQL for persistent local caching.
- NLP: spaCy (Dependency Parsing) and VADER (Sentiment Analysis).
- Scraping: Requests, BeautifulSoup, and Newspaper3k.
- Intelligent Domain Handling: Specialized pipelines for Consumer Electronics (Phones/Laptops) and News.
- Fact Cascade: Automatically queries trusted domains like GSMArena and Wikipedia for structured specifications.
- Sentiment Mapping: Extracts and groups subjective opinions by canonical aspects (e.g., "Battery", "Camera").
- Local Cache: Stores results in PostgreSQL to ensure fast retrieval for repeated queries.
- Real-time Updates: Uses Server-Sent Events (SSE) to show extraction progress in the UI.
- Debug Mode: Detailed session logging and server-side event tracking.
- Python 3.10+
- Node.js & npm
- PostgreSQL
- Ensure
uvis installed (pip install uvor see uv docs). - From the root directory, install dependencies and set up the environment:
uv sync. - Install the spaCy model:
uv run python -m spacy download en_core_web_md. - Configure your database credentials in a
.envfile in the root directory. - Run the full stack:
python run.py.
- Navigate to the
frontenddirectory. - Install dependencies:
npm install. - Start the development server:
npm run dev.
backend/: FastAPI application, NLP logic, and database services.frontend/: React application and UI components.debug/: Session-specific logs (created at runtime).diagrams/: Architectural and class diagrams.
MIACT is designed for local use. Database credentials and environment variables are managed through .env files. Ensure your local PostgreSQL instance is secured.