A recommendation engine for research papers from SPRINGER with a simple and intuitive web UI. A feedback system is incorporated through user ratings to improve the accuracy and relevance of the recommended articles. Integration of machine learning algorithms, API endpoints, and front end is efficient to ensure a smooth user experience.
- Frontend: ReactJS, React-router-dom, Chakra-UI
- Backend: NodeJS, Express, nodeMailer
- Recommendation Engine: Python, Scikit-Learn
- Database: MongoDB
Simple and intuitive web UI made using reactJS and chakra-UI with features:
- signup and login pages with jwt authentication
- displaying recommended articles
- configuring user interests by a text input and delete option
- user can rate recommended articles
- logout
Handles user authentication, user interest configuration, mail scheduling (nodemailer, smtp) and executing python scripts
Uses TFIDF-based vectorization of user interests and SPRINGER API fetched articles for calculating recommendation scores. It also cross-checks with its previously recommended articles based on the user ratings (Feedback system).
-
Run
npm install
inweb-app
directory andweb-app/frontend/journal-recommendation
directories. -
Run
pip install -r requirements.txt
in/web-app
directory to install required python libraries. -
Create an account on the Ethereal platform (https://ethereal.email/).
-
The ethereal platform will provide a "user" and a "pass" credential. Replace these with "user" and "pass" fields inside the "transporter" object of the file named
jobSchedule.js
inside the/web-app/backend/jobSchedule.js
directory. -
Run
npm run dev
inweb-app/backend
andnpm start
inweb-app/frontend/journal-recommendation
-
The new recomendations in the "my recommendation" modal will be rendered upon clicking the button only.
One can contribute to this project by
- Improving the existing documentation
- Incorporating other APIs like IEEE, ArXiv, etc.
- Improving the recommendation engine by using deep learning models (like BERT).
- Improving the existing UI to make it more intuitive and deliver a better user experience.
- making a recommendation article for platforms like Medium
- making a ranking system for QnA platforms like Quora and social media platforms like Twitter
- making a YouTube video recommendation by encoding its transcripts