ResearchHub is a modern, dark-themed full-stack platform designed for discovering, saving, and managing research papers. Inspired by Netflix, Medium, and Google Scholar, it provides a premium user experience for academics and tech enthusiasts.
- User Authentication: Secure signup and login with JWT.
- Interest Selection: Personalize your feed by choosing from various tech categories.
- Dynamic Dashboard: Sections for Recommended, Trending, and Recently Added papers.
- Search Functionality: Real-time filtering by title, category, or keywords.
- My Library: Save your favorite papers for quick access.
- Reading History: Automatically track papers you've viewed.
- Premium UI: Responsive design with glassmorphism, smooth animations, and a sleek dark theme.
- Frontend: React.js, Framer Motion, Lucide Icons, Vanilla CSS.
- Backend: Node.js, Express.js.
- Database: Local JSON files (using fs module).
- Authentication: JWT & BcryptJS.
/backend: Express server, controllers, routes, and JSON data./frontend: React application (Vite)./backend/data: Containsusers.json,papers.json,saved.json, andhistory.json.
- Node.js (v14+)
- npm or yarn
Clone the repository and install dependencies for both frontend and backend:
# Install root dependencies
npm install
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm installCreate a .env file in the backend directory:
PORT=5000
JWT_SECRET=your_secret_key_hereYou can run both the server and client simultaneously from the root directory:
npm startAlternatively, run them separately:
- Backend:
cd backend && npm run dev(Runs on port 5000) - Frontend:
cd frontend && npm run dev(Runs on port 5173)
- Signup: Create an account.
- Interests: Select categories that interest you (AI, Blockchain, etc.).
- Dashboard: Browse papers. Hover over cards for a premium feel.
- Search: Use the top search bar to find specific topics.
- Save: Click the bookmark icon to save papers to your Library.
- History: View previously read papers in the History tab.
This project is for educational purposes.