A modern web application that simulates the academic peer review process using AI. Built with FastAPI backend and React frontend, powered by EDSL (Expected Parrot Data Science Library).
- AI-Powered Reviews: Generate realistic referee reports using multiple AI models
- Complete Review Process: Includes referee reports, author responses, and referee rebuttals
- Modern Architecture: FastAPI backend with React frontend
- EDSL Integration: Seamless authentication with Expected Parrot
- Real-time Progress: Live updates during the review generation process
- Secure File Upload: Support for PDF papers up to 16MB
- Download Results: Complete review packages as ZIP files
- FastAPI: Modern, fast web framework for Python APIs
- SQLAlchemy: Database ORM with SQLite/PostgreSQL support
- JWT Authentication: Secure user authentication
- EDSL Integration: AI-powered academic review generation
- File Upload: Secure PDF handling with validation
- React 18: Modern React with hooks and context
- Material-UI: Professional, responsive UI components
- React Router: Client-side routing
- Axios: HTTP client for API communication
- Dark Theme: Academic-focused dark theme
- Python 3.11+
- Node.js 18+
- EDSL API Key from Expected Parrot
Backend:
# Python dependencies are already installed via uv/pipFrontend:
cd frontend
npm installCreate a .env file in the root directory:
# Database (optional, defaults to SQLite)
DATABASE_URL=sqlite:///./academic_review.db
# JWT Secret (change in production)
SECRET_KEY=your-secret-key-change-in-production
# Session secret (optional)
SESSION_SECRET=your-session-secretOption 1: Start Both Services
Backend (Terminal 1):
python start_backend.pyFrontend (Terminal 2):
chmod +x start_frontend.sh
./start_frontend.shOption 2: Individual Services
Backend only:
cd backend
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadFrontend only:
cd frontend
npm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Visit http://localhost:3000
- Click "Get Started" or "Login"
- Register with username, email, and password
- Optionally add your EDSL API key during registration
- After logging in, navigate to "EDSL Settings" in the user menu
- Enter your Expected Parrot API key
- The system will validate your key and enable AI processing
- Click "Upload Paper" in the navigation
- Provide a title for your paper
- Upload a PDF file (max 16MB)
- Click "Start Review Process"
- Monitor real-time progress through three stages:
- Referee Reports (1-2 minutes)
- Author Response (1-2 minutes)
- Referee Rebuttals (1 minute)
- Once completed, view the comprehensive review package
- Download all results as a ZIP file
- Access individual sections (reports, responses, rebuttals)
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/me- Get current user infoPOST /api/edsl/authenticate- EDSL API key validation
POST /api/papers/upload- Upload academic paperPOST /api/reviews/{id}/start- Start review processGET /api/reviews/{id}/status- Get review statusGET /api/reviews/{id}- Get review resultsGET /api/reviews/{id}/download- Download results ZIPGET /api/reviews- List user sessions
id,username,emailpassword_hash,edsl_api_keycreated_at
id,title,paper_filename,paper_pathstatus,processing_stagereferee_reports,author_response,referee_rebuttalscreated_at,completed_atuser_id(foreign key)
The application uses EDSL to create AI agents that simulate:
-
Three Referee Agents:
- Dr. Sarah Mitchell (Econometrics, Stanford)
- Prof. James Thompson (Macroeconomics, MIT)
- Dr. Elena Rodriguez (Development Economics, UC Berkeley)
-
Author Agent: Responds to referee concerns professionally
-
Review Process:
- Comprehensive referee reports with methodology assessment
- Professional author responses addressing all concerns
- Referee rebuttals evaluating author responses
DATABASE_URL: Database connection stringSECRET_KEY: JWT token secret keySESSION_SECRET: Session encryption keyEXPECTED_PARROT_API_KEY: Global EDSL API key (optional)
- Maximum file size: 16MB
- Supported formats: PDF only
- Storage: Local filesystem (uploads directory)
academic-review-simulator/
├── backend/
│ ├── main.py # FastAPI application
│ ├── models.py # Database models
│ ├── schemas.py # Pydantic schemas
│ ├── auth.py # Authentication logic
│ ├── database.py # Database configuration
│ └── edsl_service.py # EDSL integration
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── contexts/ # React contexts
│ │ └── services/ # API services
│ ├── package.json
│ └── vite.config.js
├── uploads/ # File storage
└── start_backend.py # Backend startup script
- Backend: Add new endpoints in
main.py, models inmodels.py - Frontend: Create components in
src/components/, pages insrc/pages/ - EDSL: Modify agents and questions in
edsl_service.py
- Database: Use PostgreSQL instead of SQLite
- Security: Change default secret keys
- File Storage: Consider cloud storage for uploads
- HTTPS: Enable SSL/TLS in production
- Environment: Use production WSGI server
Create Dockerfile for backend and frontend, use docker-compose for orchestration.
- Fork the repository
- Create a feature branch
- Make changes with tests
- Submit a pull request
MIT License - see LICENSE file for details.
For issues and questions:
- Check the Expected Parrot documentation
- Review EDSL examples and tutorials
- Submit issues on GitHub
Academic Review Simulator v2.0 - Transforming academic peer review through AI simulation.