# Overview SAPIENS is a comprehensive media platform that aggregates news and content from various media outlets organized into three categories: People, Topics, and Companies. The platform features a sophisticated auction system for media outlet management rights, prediction markets tied to articles, and a multi-tier admin system. Users can browse media outlets, read articles, participate in prediction markets, and bid on management rights through an eBay-style auction system. # User Preferences Preferred communication style: Simple, everyday language. # System Architecture ## Frontend Architecture - **Framework**: React with TypeScript using Vite for build tooling - **Styling**: Tailwind CSS with shadcn/ui component library for consistent design - **Routing**: Wouter for client-side routing - **State Management**: TanStack Query for server state and data fetching - **Authentication**: Integrated with Replit Auth system ## Backend Architecture - **Framework**: Express.js with TypeScript - **Database**: PostgreSQL with Drizzle ORM for type-safe database operations - **Authentication**: Replit-based OAuth with session management - **API Design**: RESTful API with structured error handling ## Database Design The system uses a PostgreSQL database with the following core entities: - **Users**: Supports role-based access (user, admin, superadmin) - **Media Outlets**: Categorized entities (people, topics, companies) with slugs and metadata - **Articles**: Content with rich text, images, and association to media outlets - **Prediction Markets**: Betting markets linked to articles with yes/no pricing - **Auctions**: eBay-style bidding system for media outlet management rights - **Bids**: Individual auction bids with quality scoring - **Comments**: User-generated content on articles - **Community Posts**: DC Inside-style forum posts for each media outlet with views, likes, and replies - **Community Replies**: Threaded replies to community posts - **Chat Messages**: AI chatbot conversation history per user per media outlet ## Authentication & Authorization - **Multi-tier Access**: Three user roles with escalating permissions - **Session Management**: PostgreSQL-backed sessions with configurable TTL - **Route Protection**: Middleware-based authentication checks for protected routes ## Key Features - **Category-based Navigation**: Tabbed interface for People, Topics, Companies - **Dual View Modes**: Grid and list views for article browsing - **Auction System**: Real-time bidding with quality score integration - **Prediction Markets**: Integration with external prediction market APIs - **Admin Dashboards**: Role-specific management interfaces with article CRUD operations - **Content Management**: Rich article creation, editing, and deletion with media outlet administration - **DC Inside-style Community**: Forum-style discussion boards for each media outlet with posts, replies, likes, and sorting options - **Community Features**: Post creation, threaded replies, view counts, like system, and multiple sort options (latest, views, likes, replies) - **AI Chatbot**: Personalized AI assistant for each media outlet that adapts its personality based on outlet category (people/topics/companies), providing contextual conversations in Korean # External Dependencies ## Database & Infrastructure - **Neon Database**: Serverless PostgreSQL hosting - **Drizzle ORM**: Type-safe database queries and migrations - **Replit Auth**: OAuth authentication provider ## UI & Styling - **shadcn/ui**: Pre-built accessible UI components - **Radix UI**: Primitive components for complex interactions - **Tailwind CSS**: Utility-first CSS framework - **Lucide Icons**: Icon library for consistent iconography ## Development Tools - **Vite**: Fast build tool with HMR for development - **TypeScript**: Type safety across the full stack - **TanStack Query**: Server state management and caching - **React Hook Form**: Form handling with validation ## Third-party Integrations - **Replit AI Integrations (OpenAI)**: GPT-5 model for AI chatbot functionality via Replit-managed API (no separate API key required) - **Kalshi API**: External prediction market data (referenced in user requirements) - **Image Services**: Unsplash for placeholder images and media content - **Session Storage**: connect-pg-simple for PostgreSQL session management # Recent Changes ## January 15, 2025 - AI Chatbot Implementation - **Feature**: Added personalized AI chatbot for each media outlet - **Implementation**: - Database: Created chatMessages table to store conversation history - Backend: Implemented chatbot service using OpenAI GPT-5 via Replit AI Integrations - Personality System: AI adapts based on outlet category: * People: Speaks as the person themselves * Topics: Acts as an expert on the topic * Companies: Represents the company - API: GET and POST endpoints for chat history and message sending - Frontend: ChatbotModal component with scrollable chat interface - Integration: Added Chat button to media outlet pages (authenticated users only) - **Testing**: End-to-end test passed successfully with authentication flow and message exchange