├── .deployment ├── .eslintignore ├── .eslintrc ├── .gitignore ├── .prettierrc ├── README.md ├── build ├── asset-manifest.json ├── examples │ └── exampleBibTex.bib ├── favicon.ico ├── images │ └── help │ │ ├── add-seed-papers.png │ │ ├── direction-switch.png │ │ ├── filtering.png │ │ ├── grow-network.png │ │ ├── highlight-node.png │ │ ├── recommended-papers.png │ │ ├── seed-papers.png │ │ └── view-switch.png ├── index.html ├── manifest.json ├── service-worker.js └── static │ ├── css │ ├── main.646c6520.css │ └── main.646c6520.css.map │ ├── js │ ├── main.34b57079.js │ └── main.34b57079.js.map │ └── media │ ├── geckologo.8b396eed.svg │ ├── network-icon.89f56a11.png │ └── new-logo.27ae6f13.svg ├── config ├── env.js ├── jest │ ├── cssTransform.js │ └── fileTransform.js ├── paths.js ├── polyfills.js ├── webpack.config.dev.js ├── webpack.config.prod.js └── webpackDevServer.config.js ├── jsconfig.json ├── package.json ├── public ├── examples │ └── exampleBibTex.bib ├── favicon.ico ├── images │ └── help │ │ ├── add-seed-papers.png │ │ ├── direction-switch.png │ │ ├── filtering.png │ │ ├── grow-network.png │ │ ├── highlight-node.png │ │ ├── recommended-papers.png │ │ ├── seed-papers.png │ │ └── view-switch.png ├── index.html └── manifest.json ├── scripts ├── build.js ├── start.js └── test.js ├── server ├── index.js └── services │ ├── mendeley │ ├── addDocuments.js │ ├── authenticate.js │ ├── getAllDocuments.js │ ├── getDocumentsInFolder.js │ ├── getFolders.js │ ├── lib │ │ ├── auth.js │ │ └── mendeley.js │ └── verify.js │ └── zotero │ ├── addItems.js │ ├── authenticate.js │ ├── getCollections.js │ ├── getItemsInCollection.js │ ├── lib │ ├── auth.js │ └── zotero.js │ ├── login.js │ └── verify.js ├── src ├── core │ ├── actions │ │ ├── DeletePaper │ │ │ └── index.js │ │ └── ToggleIrrelevant │ │ │ └── index.js │ ├── components │ │ ├── Action │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── ButtonList │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── DeleteButton │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── Dropdown │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── FilterOption │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── GenericLeftPanel │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── Icon │ │ │ └── index.js │ │ ├── Loader │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── MetricLabel │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── PaperCard │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── PrimaryButton │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── PrimarySquareButton │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── SecondaryButton │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── SecondarySquareButton │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── SideBarButton │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── Table │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ └── TextInput │ │ │ └── index.js │ ├── icons │ │ ├── DeleteIcon │ │ │ └── index.js │ │ ├── LinkoutIcon │ │ │ └── index.js │ │ ├── filter-icon.png │ │ ├── filter-icon.svg │ │ ├── help-icon.png │ │ ├── network-icon.png │ │ ├── network-icon.svg │ │ ├── recommended-icon.png │ │ ├── seed-icon.png │ │ ├── settings-icon.png │ │ ├── timeline-icon.png │ │ └── timeline-icon.svg │ ├── index.js │ ├── module-loader │ │ └── index.js │ ├── state │ │ ├── data.js │ │ ├── filters.js │ │ └── ui.js │ ├── styles.module.css │ ├── test.js │ └── ui │ │ ├── DownloadSVG │ │ ├── index.js │ │ └── styles.module.css │ │ ├── LeftPanel │ │ ├── PaperList │ │ │ └── index.js │ │ ├── RecommendedList │ │ │ └── index.js │ │ ├── SeedList │ │ │ └── index.js │ │ ├── Settings │ │ │ ├── FilterSettings │ │ │ │ ├── index.js │ │ │ │ └── styles.module.css │ │ │ ├── SortSettings │ │ │ │ ├── index.js │ │ │ │ └── styles.module.css │ │ │ └── index.js │ │ └── index.js │ │ ├── Logo │ │ ├── geckologo.svg │ │ ├── index.js │ │ └── styles.module.css │ │ ├── Modal │ │ ├── AddSeedsModal │ │ │ └── index.js │ │ ├── HelpModal │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── StartModal │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── ThankYouModal │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── index.js │ │ └── styles.module.css │ │ ├── RightPanel │ │ ├── PaperInfoBox │ │ │ └── index.js │ │ ├── VisToggle │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── index.js │ │ └── styles.module.css │ │ └── SideBar │ │ ├── index.js │ │ └── styles.module.css ├── data-modules │ ├── crossref │ │ └── index.js │ ├── index.js │ └── open-citations │ │ └── index.js ├── export-modules │ ├── bibtex │ │ └── index.js │ ├── index.js │ └── zotero │ │ └── index.js ├── import-modules │ ├── bibtex │ │ ├── UploadBibTexModal │ │ │ └── index.js │ │ └── index.js │ ├── crossref │ │ ├── SeedSearchModal │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ └── index.js │ ├── index.js │ ├── mendeley │ │ ├── MendeleyImportModal │ │ │ ├── index.js │ │ │ ├── styles.module.css │ │ │ ├── zotero-collection.png │ │ │ └── zotero-library.png │ │ └── index.js │ └── zotero │ │ ├── ZoteroImportModal │ │ ├── index.js │ │ ├── new-logo.svg │ │ ├── styles.module.css │ │ ├── zotero-collection.png │ │ └── zotero-library.png │ │ └── index.js ├── index.js ├── serviceWorker.js ├── third-party │ ├── bibtexParse.js │ ├── crossref.min.js │ ├── d3.v4.js │ └── js.cookie.min.js ├── utils │ └── index.js └── vis-modules │ ├── force-graph │ ├── components │ │ ├── ForceGraph │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── ModeToggleKey │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ └── ThresholdSlider │ │ │ ├── index.js │ │ │ └── styles.module.css │ └── index.js │ └── timeline │ ├── index.js │ └── styles.module.css ├── web.config └── yarn.lock /.deployment: -------------------------------------------------------------------------------- 1 | [config] 2 | SCM_DO_BUILD_DURING_DEPLOYMENT=true -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | public 3 | server.js 4 | src/third-party -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["react-app", "prettier"], 3 | "plugins": ["prettier"], 4 | "rules": { 5 | "prettier/prettier": ["error"], 6 | "jsx-a11y/href-no-hash": "off", 7 | "jsx-a11y/anchor-is-valid": ["warn", { "aspects": ["invalidHref"] }] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | #/build 11 | 12 | # misc 13 | .DS_Store 14 | .env 15 | .env.local 16 | .env.development.local 17 | .env.test.local 18 | .env.production.local 19 | 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | 24 | .vscode 25 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "singleQuote": true, 4 | "tabWidth": 2 5 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Welcome to Citation Gecko! 2 | 3 | [](https://github.com/ellerbrock/open-source-badges/) 4 | [](https://opensource.org/licenses/mit-license.php) 5 | [](https://zenodo.org/badge/latestdoi/167792602) 6 | 7 | This is a tool that uses the citation relations between scientific papers to help researchers find interesting and relevant papers. 8 | 9 | The user specifies several 'seed' papers which define the specific area of the scientific landscape they are interested in. 10 | 11 | The tool then searches several databases to find the papers that cite or are cited-by the seed papers. 12 | 13 | Papers that are cited by a lot of the seed papers are likely to be important foundational papers in the field (or certainly worth being aware of at least). 14 | 15 | Papers that cite a lot of the seed papers are likely to be more recent papers in the same area that might be worth reading. 16 | 17 | The tool allows the user to view these highly connected papers either in a table or in the context of the network. 18 | 19 | ## Live demo 20 | 21 | [citationgecko.com](http://citationgecko.com) 22 | 23 | ## Running Citation Gecko locally 24 | 25 | 1. Clone the git repo: 26 | `git clone https://github.com/CitationGecko/gecko-react` 27 | 2. If you don't have it already install Node.js from https://nodejs.org/en/. 28 | 3. Install Yarn from https://yarnpkg.com/getting-started/install 29 | 4. Open a terminal and navigate to the repository folder. 30 | 5. Run `yarn` from the command line to install all the package dependencies. 31 | 6. Run `yarn run build` from the command line to build the app. 32 | 7. Run `yarn run start` to launch the server. 33 | 8. The application will be served to http://localhost:8000 34 | 35 | ## Instructions for use 36 | 37 | 1. Go to [citationgecko.com](http://citationgecko.com) or [localhost:8000](http://localhost:8000) if you're running application locally 38 | 2. Add some seed papers by clicking 'Add more seeds' button in the left-hand panel. 39 | 3. There are several ways of choosing seed papers to start with: 40 | 2. Upload a bibTex file (NOTE: currently only entries with a DOI will be added) 41 | - There is an example BibTex in the repository (public/examples/exampleBibTex.bib) which you can try importing as a test case. 42 | 3. Search for seed papers 43 | - Sends the query to the CrossRef API, can use title / author / keywords etc. 44 | - Choose which papers to add as seeds by clicking the Add buttons at the end of each row. 45 | 4. Import from Zotero 46 | - This will redirect you to Zotero in order to authenticate the app allow you to add papers in your zotero collections. 47 | 4. The seed papers added are listed in the left-hand panel and connections between them shown graphically in the right hand panel. 48 | 5. For a list of the papers connected to these seed papers click the icon with 3 dots in the side bar. 49 | 6. You can switch between viewing a graph showing only references of the seed papers and a graph showing only the papers that cite the seed papers by clicking the toggle between 'Papers Cited-By Seed Papers' and 'Papers Citing Seed Papers' that also acts as a key. 50 | 7. If one of the connected papers seems highly relevant you can add it as a seed paper either from the list view or network view, expanding the network in order to uncover more papers. 51 | 52 | ## Citing CitationGecko 53 | 54 | To cite CitationGecko use the following details: 55 | 56 | Author: Barnabas James Walker 57 | 58 | Title: CitationGecko 59 | 60 | DOI: https://doi.org/10.5281/zenodo.7068284 61 | 62 | An example format may be: 63 | 64 | Walker. B (2022) CitationGecko [Software] https://doi.org/10.5281/zenodo.7068284 65 | -------------------------------------------------------------------------------- /build/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "main.css": "static/css/main.646c6520.css", 3 | "main.css.map": "static/css/main.646c6520.css.map", 4 | "main.js": "static/js/main.34b57079.js", 5 | "main.js.map": "static/js/main.34b57079.js.map", 6 | "static/media/geckologo.svg": "static/media/geckologo.8b396eed.svg", 7 | "static/media/network-icon.png": "static/media/network-icon.89f56a11.png", 8 | "static/media/new-logo.svg": "static/media/new-logo.27ae6f13.svg" 9 | } -------------------------------------------------------------------------------- /build/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/favicon.ico -------------------------------------------------------------------------------- /build/images/help/add-seed-papers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/images/help/add-seed-papers.png -------------------------------------------------------------------------------- /build/images/help/direction-switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/images/help/direction-switch.png -------------------------------------------------------------------------------- /build/images/help/filtering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/images/help/filtering.png -------------------------------------------------------------------------------- /build/images/help/grow-network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/images/help/grow-network.png -------------------------------------------------------------------------------- /build/images/help/highlight-node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/images/help/highlight-node.png -------------------------------------------------------------------------------- /build/images/help/recommended-papers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/images/help/recommended-papers.png -------------------------------------------------------------------------------- /build/images/help/seed-papers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/images/help/seed-papers.png -------------------------------------------------------------------------------- /build/images/help/view-switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CitationGecko/gecko-react/e4133f99ddd3831a9da5162c8f60654e37e3c1b0/build/images/help/view-switch.png -------------------------------------------------------------------------------- /build/index.html: -------------------------------------------------------------------------------- 1 |