Anonymous Ring-Based Journalist Review System
A secure, privacy-preserving platform for anonymous peer review of journalistic content using advanced cryptographic techniques including ring signatures, blind credentials, and sybil-resistant voting mechanisms.
- Ring Signatures: Complete voter anonymity while maintaining verifiability
- Blind Credentials: Sybil-resistant authentication without identity exposure
- Atomic Operations: Race-condition-free voting with Redis-based locking
- Key Image Linking: Prevents double-voting without revealing voter identity
- Multi-stage Review: Submitter β Vetter β Community voting
- Escalation System: Flagged content routed to human moderators
- Audit Trail: Immutable logs for complete transparency
- Real-time Monitoring: Performance metrics and API call tracking
- Submitters: Upload content for review
- Voters: Anonymous community-based scoring
- Admins: System oversight and escalation handling
- Python 3.11+ (for local development)
- Node.js 18+ (for frontend development)
- PostgreSQL 15+ & Redis 7+ (handled by Docker)
# Clone the repository
git clone https://github.com/Dv-19/ProofPals.git
cd ProofPals
Access Points:
- π Frontend: http://localhost
- π§ Backend API: http://localhost:8000
- π API Documentation: http://localhost:8000/docs
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment
cp env.example .env
# Edit .env with your database credentials
# Initialize database
python init_db.py
# Start development server
python main.pycd proofpals-frontend
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run buildProofPals/
βββ π§ backend/ # FastAPI backend
β βββ main.py # Main application entry
β βββ models.py # Database models
β βββ auth_service.py # Authentication & credentials
β βββ crypto_service.py # Ring signature implementation
β βββ token_service.py # Atomic token management
β βββ vote_service.py # Voting logic
β βββ escalation_service.py # Content escalation
β βββ tests/ # Comprehensive test suite
βββ π¨ proofpals-frontend/ # React + TypeScript frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Route components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API integration
β β βββ types/ # TypeScript definitions
β βββ public/ # Static assets
βββ π pp_clsag_core/ # Rust cryptographic library
βββ π³ docker-compose.yml # Multi-service orchestration
βββ π DEPLOYMENT.md # Deployment guide
- FastAPI: High-performance Python web framework
- PostgreSQL: Primary database with ACID compliance
- Redis: Caching and atomic operations
- SQLAlchemy: ORM with Alembic migrations
- Pydantic: Data validation and serialization
- React 18: Modern UI library with hooks
- TypeScript: Type-safe JavaScript
- Vite: Fast build tool and dev server
- TailwindCSS: Utility-first CSS framework
- Radix UI: Accessible component primitives
- React Query: Server state management
- Zustand: Client state management
- Ring Signatures: Anonymous voting mechanism
- Blind Signatures: Privacy-preserving credentials
- Key Images: Double-spending prevention
- Rust Integration: High-performance crypto operations
cd backend
# Run all tests
python -m pytest
# Run specific test categories
python test_integration.py # Integration tests
python test_concurrency.py # Concurrency tests
python sybil_attack_test.py # Security tests
# Performance testing
python performance_metrics.pycd proofpals-frontend
# Unit tests
npm run test
# E2E tests
npm run test:e2e
# Coverage report
npm run test:coverage- Anonymity: Ring signatures hide voter identity among group members
- Unlinkability: Votes cannot be linked to voters
- Unforgeability: Only authorized users can create valid signatures
- Double-spend Prevention: Key images prevent multiple votes
- Atomic Operations: Redis-based locking prevents race conditions
- Input Validation: Comprehensive request validation
- Rate Limiting: API endpoint protection
- Audit Logging: Complete action traceability
- Real-time Metrics: API response times, error rates
- Performance Reports: Automated system health checks
- Escalation Tracking: Content review pipeline monitoring
- User Activity: Anonymous usage statistics
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Run tests: Ensure all tests pass
- Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
- Follow existing code style and conventions
- Add tests for new features
- Update documentation as needed
- Ring Signature Research: Academic cryptography community
- Open Source Libraries: All the amazing tools that made this possible