Files
sapiens-web/replit.md
kimjaehyeon0101 8cc09a61dc Improve admin access and navigation links for superadmins
Update `App.tsx` to grant superadmin access to the admin dashboard and refactor navigation links to use `Link` component from `wouter`. Modify `DatabaseStorage` in `server/storage.ts` to update user records based on email instead of ID.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 069d4324-6c40-4355-955e-c714a50de1ea
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3df548ff-50ae-432f-9be4-25d34eccc983/069d4324-6c40-4355-955e-c714a50de1ea/bVdKIaU
2025-09-29 15:01:03 +00:00

69 lines
3.4 KiB
Markdown

# 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
## 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
- **Content Management**: Rich article creation and media outlet administration
# 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
- **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