The Academic Review Simulator is a web application that simulates the academic peer review process using AI. Users can upload academic papers in PDF format and receive simulated referee reports, author responses, and rebuttals. The application leverages the EDSL (Expected Parrot Data Science Library) to generate realistic academic review content through AI agents representing different types of reviewers with distinct expertise and reviewing styles.
Preferred communication style: Simple, everyday language.
- Flask-based backend with SQLAlchemy ORM for database operations
- Jinja2 templating with Bootstrap for responsive UI components
- Session-based authentication using Flask sessions for user state management
- File upload handling with secure filename processing and size limitations (16MB max)
- SQLite/PostgreSQL support with SQLAlchemy providing database abstraction
- User model storing credentials and EDSL API keys
- ReviewSession model tracking paper uploads, processing status, and generated content
- Cascade deletion ensuring cleanup when users are removed
- EDSL service wrapper handling authentication with Expected Parrot API
- Agent-based review generation using multiple AI personas with distinct academic backgrounds
- File processing pipeline converting uploaded PDFs into AI-readable formats
- Multi-stage content generation producing referee reports, author responses, and rebuttals sequentially
- Progressive enhancement with vanilla JavaScript for interactivity
- Bootstrap dark theme optimized for Replit environment
- Real-time progress tracking with AJAX polling for long-running AI operations
- Responsive design supporting mobile and desktop experiences
- Secure upload directory with proper permissions and access controls
- Temporary file handling for AI processing workflows
- ZIP file generation for complete review package downloads
- File validation ensuring only PDF uploads are accepted
- Comprehensive logging throughout the application stack
- User-friendly error messages with proper Flask flash messaging
- Processing state tracking to handle AI service failures gracefully
- Session cleanup for failed or interrupted review processes
- EDSL (Expected Parrot) - Primary AI service for generating academic content through specialized agents
- Expected Parrot API - Backend AI service requiring API key authentication
- Flask - Main web framework with extensions for SQLAlchemy and file uploads
- SQLAlchemy - Database ORM with support for multiple database backends
- Werkzeug - WSGI utilities including security helpers and proxy middleware
- Bootstrap 5 - UI framework with Replit dark theme customization
- Font Awesome - Icon library for consistent visual elements
- jQuery - JavaScript library for AJAX operations and DOM manipulation
- Werkzeug secure_filename - Secure file upload handling
- Python zipfile - Archive creation for download packages
- PDF processing capabilities - Handled through EDSL FileStore integration
- Python logging - Built-in logging for debugging and monitoring
- Environment variable configuration - Flexible deployment configuration
- Replit hosting optimization - ProxyFix middleware for proper request handling