AI-Powered Research Paper Collaboration Hub
ScholarFlow is a modern research paper management and collaboration platform designed to streamline academic workflows. Upload, organize, search, and collaborate on research papers with AI-powered insights and smart organization features.
- Frontend: ScholarFlow App
- API: Backend API
- Rich Text Editor: Full-featured TipTap-based editor for research papers with advanced formatting, tables, lists, and more
- Auto-save & Drafts: Debounced auto-save, manual save, and draft/publish workflow with real-time status
- Export to PDF/DOCX: One-click export with embedded images and professional styling
- Image Upload: Drag-and-drop or paste images directly into the editor, with S3 storage and resizing
- Smart Upload: Drag-and-drop PDF upload with automatic metadata extraction
- AI Metadata: Automatic title, author, and abstract extraction from PDFs
- Advanced Search: Full-text search with filters (author, date, type, keywords)
- PDF Preview: Secure in-app PDF viewer with responsive design
-
Email Sharing: Share papers via email with permission management (view/edit)
-
Workspace Collaboration: Invite users to collections and workspaces with role-based access
-
Multiple Auth Options: Google OAuth, GitHub OAuth, and email/password
-
Secure Sessions: JWT-based authentication with refresh tokens
-
Password Recovery: Secure password reset with email verification
-
Production Security: Rate limiting, input sanitization, CORS protection
- Responsive Design: Mobile-first design with Tailwind CSS
- Interactive Dashboard: Quick access to papers, search, and collections
- Real-time Feedback: Loading states, error handling, and success notifications
- Accessibility: WCAG compliant with keyboard navigation support
- Stripe Checkout: Upgrade workspaces through secure hosted checkout with plan-aware metadata
- Customer Portal Access: Manage billing details, cancel, or reactivate subscriptions from Stripe without support tickets
- Real-Time Sync: Webhook-driven role updates keep dashboard permissions aligned with subscription status
- Billing Dashboard Entry: Dedicated navigation item and refreshed auth session to surface plan changes instantly
- Real-Time System Metrics: Live monitoring with 10-second auto-refresh for CPU, memory, storage, and database
- Accurate CPU Tracking: Intelligent CPU usage calculation using idle/total times from Node.js os module
- Smart Storage Analytics: Dynamic storage estimation based on actual database usage with realistic percentages
- Health Status Dashboard: Comprehensive health cards (Database/Server/Storage/CPU) with automatic status classification
- Performance Visualization: Auto-colored progress bars that adapt based on metric values (greenβblueβyellowβred)
- System Information Panel: Real-time platform, Node.js version, database version, memory, and uptime display
- Production-Grade Architecture: HTTP caching, rate limiting, admin-only access, lazy loading with code splitting
- Performance Monitoring: Response time tracking and health checks
- Error Handling: Comprehensive error boundaries and retry logic
- Database Optimization: Composite indexes and query optimization
- Scalable Architecture: Microservices-ready with clean separation
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS + ShadCN UI
- State Management: Redux Toolkit Query
- Forms: React Hook Form + Zod validation
- Authentication: NextAuth.js
- Runtime: Node.js with Express.js
- Language: TypeScript
- Database: PostgreSQL with Prisma ORM
- Storage: AWS S3 for file management
- Authentication: JWT + bcrypt
- Validation: Zod schemas
- Package Manager: Yarn Berry (v4)
- Monorepo: Turborepo for build optimization
- Database: PostgreSQL with pgvector (AI-ready)
- Deployment: Vercel (Frontend) + Railway/Render (Backend)
- Monitoring: Health checks and performance tracking
Scholar-Flow/
βββ apps/
β βββ frontend/ # Next.js 15 application
β β βββ src/app/ # App Router pages
β β βββ components/ # Reusable UI components
β β βββ lib/ # Utilities and configurations
β β βββ redux/ # State management
β βββ backend/ # Express.js API server
β βββ src/app/ # Application logic
β βββ prisma/ # Database schema and migrations
β βββ scripts/ # Utility scripts
βββ docs/ # Project documentation
βββ .github/ # GitHub workflows and templates
βββ .cursor/ # Development rules and guidelines
- Node.js 18+
- PostgreSQL 15+
- Yarn Berry (v4)
- AWS S3 account (for file storage)
-
Clone the repository
git clone https://github.com/Atik203/Scholar-Flow.git cd Scholar-Flow -
Install dependencies
yarn install
-
Set up environment variables
# Copy environment templates cp apps/frontend/.env.example apps/frontend/.env.local cp apps/backend/.env.example apps/backend/.env # Edit the .env files with your configurations
-
Set up the database
yarn db:migrate yarn db:generate
-
Start development servers
yarn dev:turbo
The application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
# Development
yarn dev:turbo # Start both frontend and backend
yarn dev:frontend # Start only frontend
yarn dev:backend # Start only backend
# Database
yarn db:migrate # Run database migrations
yarn db:generate # Generate Prisma client
yarn db:studio # Open Prisma Studio
yarn db:seed # Seed database with sample data
# Quality Assurance
yarn lint # Run ESLint
yarn type-check # TypeScript compilation check
yarn test # Run test suite
yarn build # Production build
# Utilities
yarn clean # Clean build artifacts
yarn reset # Reset node_modules and rebuild- β Rich Text Editor: TipTap-based, with advanced formatting, tables, lists, and image upload
- β Auto-save & Drafts: Debounced auto-save, manual save, and draft/publish workflow
- β Export to PDF/DOCX: One-click export with embedded images and professional styling
- β Image Upload: Drag-and-drop or paste images, S3 storage, resizing
- β Email Sharing: Share papers via email with permission management
- β Authentication System: Google/GitHub OAuth + email/password
- β Production Security: Rate limiting, monitoring, error handling, admin-only access
- β Paper Upload: Multi-file drag-and-drop with S3 storage
- β Metadata Extraction: AI-powered title, author, abstract extraction
- β Advanced Search: Full-text search with comprehensive filters
- β PDF Preview: Secure iframe-based PDF viewer
- β Real-Time System Metrics: Live CPU, memory, storage, database monitoring with 10s auto-refresh
- β Accurate CPU Tracking: Intelligent calculation using Node.js os module (idle/total times)
- β Smart Storage Analytics: Dynamic estimation (10x usage, min 100GB) for realistic percentages
- β Health Dashboard: Auto-classified status cards (healthy/degraded/unhealthy/warning/critical)
- β Performance Visualization: Auto-colored bars (greenβblueβyellowβred based on values)
- β System Information: Real-time platform, versions, memory, uptime display
- β Dashboard: Quick access and navigation with role-based routing
- β Responsive UI: Mobile-first design with modern components
- β Lazy Loading: Code splitting with React.lazy and Suspense boundaries
-
API Documentation - Complete API reference
-
UI Design System - Component guidelines
-
Development Guide - Setup and contribution guide
-
Release Notes - Version history and changes
-
Roadmap - Feature development timeline
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
# Run all tests
yarn test
# Run tests with coverage
yarn test:coverage
# Run integration tests
yarn test:integration
# Run frontend tests
yarn test:frontend
# Run backend tests
yarn test:backendThis project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.
- Next.js for the amazing React framework
- Prisma for the excellent database toolkit
- ShadCN UI for beautiful component library
- Vercel for seamless deployment
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: atikurrahaman0305@gmail.com
β Star this repository if you find it helpful!