inCite is a Google Chrome extension built with React and MobX. It allows users to easily create web-related bibliographies by fetching the metadata from their active webpage, generating a citation for it in several styles and adding it to their bibliography at the click of a button. It supports storage of multiple bibliographies, several citation styles and editing if needed. Future updates may include shared/sync'd bibliographies, metadata querying for other materials (ex. books, newspaper articles, etc) or anything else that comes to mind.
We tried to keep the project as simple as possible for development. It follows the standard set of steps for most React extensions:
- Clone or download the project.
- Go to the project's root directory and run
npm i. - In the root directory, run
npm run build(oryarn build). - Go to
chrome://extensions/. Enable developer mode in the top-right corner and drag and drop the build folder from the project's root directory onto the Chrome page. From here, you should be able to see the inCite icon with the rest of your extensions which can be used for testing as you build the app. - After changing code, if you want to see changes, run
npm run buildoryarn buildand check the updates to the extension in Chrome.
/bincontains scripts used by the project. At the moment, in only contains a single script run when building the project to un-inline js code which is needed to run the project/src/assetscontains the project's assets and fonts/src/componentscontains resuable (to some degree), custom components used throughout the project that match the general style used/src/navigatorcontains the App. It selects which screen to render based on navigation handled in the MobX store and/or localstorage/src/pagescontains the implementations of each screen. The code in the project follows the presentational/container components structure (also known as smart/dumb components). In this projects, container/smart components can be found in/src/pages/screensand presentational/dumb components can be found in/src/pages/views/src/servicescontains various tools used in the project including citation generating and sorting/src/storescontains MobX stores. This handles almost all of the state management used throughout the app. There are a few exceptions at the time of writing which will be fixed soon/testis designated for tests. At the moment, only a few tests exist for some citations styles. Future additions may include Storybook UI tests and more extensive citation generating unit tests
- This project was mostly developed with Chrome in mind so it should work on Chrome and Chromium-based browsers.
- It is untested on non-Chrome browsers and functionality like auto-fetching metadata will likely not work on these browsers.