{"id":31557338,"url":"https://github.com/atik203/scholar-flow","last_synced_at":"2025-10-04T23:54:24.309Z","repository":{"id":309045007,"uuid":"1034512847","full_name":"Atik203/Scholar-Flow","owner":"Atik203","description":"ScholarFlow is a SaaS platform designed for researchers, students, professors, and academic teams to Upload, organize, and review research papers with collections, annotations, search, and team collaboration in a shared research library","archived":false,"fork":false,"pushed_at":"2025-10-01T07:37:01.000Z","size":28050,"stargazers_count":3,"open_issues_count":4,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-01T09:18:32.795Z","etag":null,"topics":["aws-s3","cloudflare-r2","expressjs","next-auth","nextjs","postgresql","prisma-orm","redux","research-papers","rtk-query","semantic-search","stripe","tailwindcss","turborepo","typescript"],"latest_commit_sha":null,"homepage":"https://scholar-flow-ai.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Atik203.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"Roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["Atik203"],"patreon":"atik203","ko_fi":"atik203","buy_me_a_coffee":"atik203"}},"created_at":"2025-08-08T14:06:09.000Z","updated_at":"2025-10-01T07:37:06.000Z","dependencies_parsed_at":"2025-08-27T17:07:12.060Z","dependency_job_id":"76d51170-fb8c-45b1-9714-e7947758727b","html_url":"https://github.com/Atik203/Scholar-Flow","commit_stats":null,"previous_names":["atik203/project-info","atik203/scholar-flow"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/Atik203/Scholar-Flow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atik203%2FScholar-Flow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atik203%2FScholar-Flow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atik203%2FScholar-Flow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atik203%2FScholar-Flow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Atik203","download_url":"https://codeload.github.com/Atik203/Scholar-Flow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atik203%2FScholar-Flow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278391189,"owners_count":25978945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-s3","cloudflare-r2","expressjs","next-auth","nextjs","postgresql","prisma-orm","redux","research-papers","rtk-query","semantic-search","stripe","tailwindcss","turborepo","typescript"],"created_at":"2025-10-04T23:54:16.646Z","updated_at":"2025-10-04T23:54:24.303Z","avatar_url":"https://github.com/Atik203.png","language":"TypeScript","funding_links":["https://github.com/sponsors/Atik203","https://patreon.com/atik203","https://ko-fi.com/atik203","https://buymeacoffee.com/atik203"],"categories":[],"sub_categories":[],"readme":"# ScholarFlow\n\n\u003e **AI-Powered Research Paper Collaboration Hub**\n\nScholarFlow 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.\n\n[![Version](https://img.shields.io/badge/version-1.1.8-blue)](./docs/Release.md)\n[![License](https://img.shields.io/badge/license-Apache%202.0-green)](./LICENSE.md)\n[![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue)](https://www.typescriptlang.org/)\n[![Next.js](https://img.shields.io/badge/Next.js-15-black)](https://nextjs.org/)\n[![Express](https://img.shields.io/badge/Express-Node.js-green)](https://expressjs.com/)\n\n## 🚀 Live Demo\n\n- **Frontend**: [ScholarFlow App](https://scholar-flow-ai.vercel.app)\n- **API**: [Backend API](https://scholar-flow-api.vercel.app/api/health)\n\n## ✨ Features\n\n### � Rich Text Editing \u0026 Paper Management\n\n- **Rich Text Editor**: Full-featured TipTap-based editor for research papers with advanced formatting, tables, lists, and more\n- **Auto-save \u0026 Drafts**: Debounced auto-save, manual save, and draft/publish workflow with real-time status\n- **Export to PDF/DOCX**: One-click export with embedded images and professional styling\n- **Image Upload**: Drag-and-drop or paste images directly into the editor, with S3 storage and resizing\n- **Smart Upload**: Drag-and-drop PDF upload with automatic metadata extraction\n- **AI Metadata**: Automatic title, author, and abstract extraction from PDFs\n- **Advanced Search**: Full-text search with filters (author, date, type, keywords)\n- **PDF Preview**: Secure in-app PDF viewer with responsive design\n\n### � Sharing \u0026 Collaboration\n\n- **Email Sharing**: Share papers via email with permission management (view/edit)\n- **Workspace Collaboration**: Invite users to collections and workspaces with role-based access\n\n- **Multiple Auth Options**: Google OAuth, GitHub OAuth, and email/password\n- **Secure Sessions**: JWT-based authentication with refresh tokens\n- **Password Recovery**: Secure password reset with email verification\n- **Production Security**: Rate limiting, input sanitization, CORS protection\n\n### 🎯 Modern UI/UX\n\n- **Responsive Design**: Mobile-first design with Tailwind CSS\n- **Interactive Dashboard**: Quick access to papers, search, and collections\n- **Real-time Feedback**: Loading states, error handling, and success notifications\n- **Accessibility**: WCAG compliant with keyboard navigation support\n\n### � Billing \u0026 Subscription\n\n- **Stripe Checkout**: Upgrade workspaces through secure hosted checkout with plan-aware metadata\n- **Customer Portal Access**: Manage billing details, cancel, or reactivate subscriptions from Stripe without support tickets\n- **Real-Time Sync**: Webhook-driven role updates keep dashboard permissions aligned with subscription status\n- **Billing Dashboard Entry**: Dedicated navigation item and refreshed auth session to surface plan changes instantly\n\n### �🔧 Admin Dashboard \u0026 System Monitoring\n\n- **Real-Time System Metrics**: Live monitoring with 10-second auto-refresh for CPU, memory, storage, and database\n- **Accurate CPU Tracking**: Intelligent CPU usage calculation using idle/total times from Node.js os module\n- **Smart Storage Analytics**: Dynamic storage estimation based on actual database usage with realistic percentages\n- **Health Status Dashboard**: Comprehensive health cards (Database/Server/Storage/CPU) with automatic status classification\n- **Performance Visualization**: Auto-colored progress bars that adapt based on metric values (green→blue→yellow→red)\n- **System Information Panel**: Real-time platform, Node.js version, database version, memory, and uptime display\n- **Production-Grade Architecture**: HTTP caching, rate limiting, admin-only access, lazy loading with code splitting\n\n### 🏗️ Production-Ready Infrastructure\n\n- **Performance Monitoring**: Response time tracking and health checks\n- **Error Handling**: Comprehensive error boundaries and retry logic\n- **Database Optimization**: Composite indexes and query optimization\n- **Scalable Architecture**: Microservices-ready with clean separation\n\n## 🛠️ Technology Stack\n\n### Frontend\n\n- **Framework**: Next.js 15 with App Router\n- **Language**: TypeScript\n- **Styling**: Tailwind CSS + ShadCN UI\n- **State Management**: Redux Toolkit Query\n- **Forms**: React Hook Form + Zod validation\n- **Authentication**: NextAuth.js\n\n### Backend\n\n- **Runtime**: Node.js with Express.js\n- **Language**: TypeScript\n- **Database**: PostgreSQL with Prisma ORM\n- **Storage**: AWS S3 for file management\n- **Authentication**: JWT + bcrypt\n- **Validation**: Zod schemas\n\n### DevOps \u0026 Tools\n\n- **Package Manager**: Yarn Berry (v4)\n- **Monorepo**: Turborepo for build optimization\n- **Database**: PostgreSQL with pgvector (AI-ready)\n- **Deployment**: Vercel (Frontend) + Railway/Render (Backend)\n- **Monitoring**: Health checks and performance tracking\n\n## 📁 Project Structure\n\n```text\nScholar-Flow/\n├── apps/\n│   ├── frontend/          # Next.js 15 application\n│   │   ├── src/app/       # App Router pages\n│   │   ├── components/    # Reusable UI components\n│   │   ├── lib/          # Utilities and configurations\n│   │   └── redux/        # State management\n│   └── backend/          # Express.js API server\n│       ├── src/app/      # Application logic\n│       ├── prisma/       # Database schema and migrations\n│       └── scripts/      # Utility scripts\n├── docs/                 # Project documentation\n├── .github/             # GitHub workflows and templates\n└── .cursor/             # Development rules and guidelines\n```\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Node.js 18+\n- PostgreSQL 15+\n- Yarn Berry (v4)\n- AWS S3 account (for file storage)\n\n### Installation\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/Atik203/Scholar-Flow.git\n   cd Scholar-Flow\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   yarn install\n   ```\n\n3. **Set up environment variables**\n\n   ```bash\n   # Copy environment templates\n   cp apps/frontend/.env.example apps/frontend/.env.local\n   cp apps/backend/.env.example apps/backend/.env\n\n   # Edit the .env files with your configurations\n   ```\n\n4. **Set up the database**\n\n   ```bash\n   yarn db:migrate\n   yarn db:generate\n   ```\n\n5. **Start development servers**\n\n   ```bash\n   yarn dev:turbo\n   ```\n\n   The application will be available at:\n   - Frontend: [http://localhost:3000](http://localhost:3000)\n   - Backend: [http://localhost:5000](http://localhost:5000)\n\n## 🔧 Development Commands\n\n```bash\n# Development\nyarn dev:turbo          # Start both frontend and backend\nyarn dev:frontend       # Start only frontend\nyarn dev:backend        # Start only backend\n\n# Database\nyarn db:migrate         # Run database migrations\nyarn db:generate        # Generate Prisma client\nyarn db:studio          # Open Prisma Studio\nyarn db:seed            # Seed database with sample data\n\n# Quality Assurance\nyarn lint               # Run ESLint\nyarn type-check         # TypeScript compilation check\nyarn test               # Run test suite\nyarn build              # Production build\n\n# Utilities\nyarn clean              # Clean build artifacts\nyarn reset              # Reset node_modules and rebuild\n```\n\n### Content Management \u0026 Editing\n\n- ✅ **Rich Text Editor**: TipTap-based, with advanced formatting, tables, lists, and image upload\n- ✅ **Auto-save \u0026 Drafts**: Debounced auto-save, manual save, and draft/publish workflow\n- ✅ **Export to PDF/DOCX**: One-click export with embedded images and professional styling\n- ✅ **Image Upload**: Drag-and-drop or paste images, S3 storage, resizing\n- ✅ **Email Sharing**: Share papers via email with permission management\n\n### Authentication \u0026 Security\n\n- ✅ **Authentication System**: Google/GitHub OAuth + email/password\n- ✅ **Production Security**: Rate limiting, monitoring, error handling, admin-only access\n\n### Paper Management\n\n- ✅ **Paper Upload**: Multi-file drag-and-drop with S3 storage\n- ✅ **Metadata Extraction**: AI-powered title, author, abstract extraction\n- ✅ **Advanced Search**: Full-text search with comprehensive filters\n- ✅ **PDF Preview**: Secure iframe-based PDF viewer\n\n### Admin \u0026 System Monitoring\n\n- ✅ **Real-Time System Metrics**: Live CPU, memory, storage, database monitoring with 10s auto-refresh\n- ✅ **Accurate CPU Tracking**: Intelligent calculation using Node.js os module (idle/total times)\n- ✅ **Smart Storage Analytics**: Dynamic estimation (10x usage, min 100GB) for realistic percentages\n- ✅ **Health Dashboard**: Auto-classified status cards (healthy/degraded/unhealthy/warning/critical)\n- ✅ **Performance Visualization**: Auto-colored bars (green→blue→yellow→red based on values)\n- ✅ **System Information**: Real-time platform, versions, memory, uptime display\n\n### User Experience\n\n- ✅ **Dashboard**: Quick access and navigation with role-based routing\n- ✅ **Responsive UI**: Mobile-first design with modern components\n- ✅ **Lazy Loading**: Code splitting with React.lazy and Suspense boundaries\n\n## 📚 Documentation\n\n- [**API Documentation**](./docs/API.md) - Complete API reference\n- [**UI Design System**](./docs/UI_DESIGN.md) - Component guidelines\n- [**Development Guide**](./docs/DEVELOPMENT.md) - Setup and contribution guide\n\n- [**Release Notes**](./docs/Release.md) - Version history and changes\n- [**Roadmap**](./Roadmap.md) - Feature development timeline\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 🧪 Testing\n\n```bash\n# Run all tests\nyarn test\n\n# Run tests with coverage\nyarn test:coverage\n\n# Run integration tests\nyarn test:integration\n\n# Run frontend tests\nyarn test:frontend\n\n# Run backend tests\nyarn test:backend\n```\n\n## 📄 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE.md](./LICENSE.md) file for details.\n\n## 🙏 Acknowledgments\n\n- [Next.js](https://nextjs.org/) for the amazing React framework\n- [Prisma](https://prisma.io/) for the excellent database toolkit\n- [ShadCN UI](https://ui.shadcn.com/) for beautiful component library\n- [Vercel](https://vercel.com/) for seamless deployment\n\n## 📞 Support\n\n- **Issues**: [GitHub Issues](https://github.com/Atik203/Scholar-Flow/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/Atik203/Scholar-Flow/discussions)\n- **Email**: [atikurrahaman0305@gmail.com](mailto:atikurrahaman0305@gmail.com)\n\n---\n\n⭐ **Star this repository** if you find it helpful!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatik203%2Fscholar-flow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatik203%2Fscholar-flow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatik203%2Fscholar-flow/lists"}