👋 Welcome to the Academic Paper Management System!
This repository contains the code for a web application designed to help manage academic papers through various stages, including submission, processing, anonymization, review, and tracking. It aims to streamline the workflow for researchers, reviewers, and administrators.
- Paper Submission: Users can upload their academic papers.
- Document Categorization: Papers are automatically categorized.
- PDF Anonymization: Sensitive author information can be redacted and encrypted.
- PDF Decryption: Restore original information in previously anonymized PDFs.
- Review Workflow: Reviewers can access and provide feedback on papers.
- Paper Tracking: Track the status of submitted papers in real time.
- User Roles: Interfaces for administrators, submitters ("pdfer"), and reviewers.
- Communication: Built‑in chat for system‑wide discussions.
- Logging: All activities are logged for audit and debugging.
- Frontend: Next.js (React) with Shadcn UI components
- Backend: FastAPI (Python)
- ORM: Prisma for database interactions
- PDF Processing: PyMuPDF, PyPDF2
- Cryptography: Python
cryptographylibrary and custom utilities inlib/crypto.ts - Database: PostgreSQL (configured via Prisma)
├── .env # Environment variables
├── app/ # Next.js frontend routes & pages
│ ├── api/ # Next.js API routes (route handlers)
│ └── [role]/page.tsx# Pages for admin, pdfer, reviewer, track
├── components/ # Reusable React components
│ ├── ui/ # Primitive UI components (Shadcn)
│ ├── chat-section.tsx
│ ├── file-upload.tsx
│ ├── PdfAnonymizerComponent.tsx
│ ├── PdfDecrypterComponent.tsx
│ └── track-section.tsx
├── fastapiRouter/ # FastAPI backend route definitions
├── lib/ # Utilities (crypto.ts, prisma client)
├── pdfs/ # Stored & processed PDF files
├── prisma/ # Prisma schema
├── public/ # Static assets
└── venv/ # Python virtual environment
Follow these steps to set up the application locally.
# 1. Create a Python virtual environment
python3 -m venv venv
# 2. Activate the virtual environment
# macOS/Linux:
source venv/bin/activate
# Windows PowerShell:
.\venv\Scripts\Activate
# 3. Install Python dependencies
pip install fastapi uvicorn pydantic PyMuPDF cryptography PyPDF2# Push your Prisma schema to the database
npx prisma db push
# Generate the Prisma client
npx prisma generateTip: Ensure your
.envcontains the correctDATABASE_URLbefore running these commands.
# 1. Install Node dependencies
npm install
# 2. Copy or create a .env file
cp .env.example .env
# 3. Run the Next.js development server
npm run dev- Start FastAPI:
uvicorn main:app --reload
- Open Frontend:
Navigate tohttp://localhost:3000in your browser.















