inventaire / Inventaire
Programming Languages
Projects that are alternatives of or similar to Inventaire
Inventaire
Libre collaborative resource mapper powered by open-knowledge
This repository hosts Inventaire.io source code. Its a collaborative resources mapper project, while yet only focused on exploring books mapping with wikidata and ISBNs
This repository tracks the server-side developments, while the (heavy) client-side can be found here. Client-related technical issues should go in the client repo, while this repo gathers all other technical issues. Non-technical discussions such as feature requests should preferably happen in the roadmap. In doubt, just use your best guess or come ask on the chat :)
Summary
Installation
This is the installation documentation for a developement environment. For production setup, see: inventaire-deploy
Dependencies to install manually
- git, curl (used in some installation scripts), graphicsmagick (used to resize images), inotify-tools (used in API tests scripts):
- NodeJS (>=8, using the latest LTS is recommended), NVM (allows greater version update flexibility)
- a CouchDB (>=3.1) instance (on port 5984 for default config)
- an Elasticsearch (>=7.10) instance (on port 9200 for default config)
To install all this those dependneices on Ubuntu 20.04:
For packages available in Ubuntu default repositories:
sudo apt-get update
sudo apt-get install git curl wget graphicsmagick inotify-tools
For packages that need a more elaborated installation, see their own documentation:
Project development environment installation
git clone https://github.com/inventaire/inventaire.git
cd inventaire
npm install
This should have installed:
- the server (this git repository) in the current directory
- the client (inventaire-client) in the
client
directory - i18n strings (inventaire-i18n) in the
inventaire-i18n
directory
This should also have created a ./config/local.js
file, in which you can override all present in ./config/default.js
: make sure to set db
username
and password
to your CouchDB username and password.
And now you should be all set! You can now start the server (on port 3006
by default)
# Starting the server in watch mode so that it reboots on file changes
npm run watch
If you want to work on the client, you need to start the webpack watcher and dev server (on port 3005
by default)
# In another terminal
cd inventaire/client
npm run watch
Installation tips
- To use executable that are used by the project (such as
mocha
), you can either find them in./node_modules/.bin
or install them globally with npm:npm install -g mocha supervisor lev2
etc.
Repositories and Branches
server
- master: the stable branch. Unstable work should happen in feature-specific branches and trigger pull requests when ready to be merged in master. See Code Contributor Guidelines.
client
- master: the stable branch. Unstable work should happen in feature-specific branches and trigger pull requests when ready to be merged in master. See Code Contributor Guidelines.
i18n
the repo tracking strings used in the client and emails in all the supported languages. For helping to translate, see translate.inventaire.io
- master: tracking translations fetched from the translation tool and build scripts
- dist: same as master but with pre-built files
deploy
tracking installation scripts and documentation to run inventaire in production
- master: the main implementation targeting Ubuntu 16.04. Additional branches can be started to document installation on other environments
docker
- master: tracking docker installation files for development and testing use
Stack Map
This repo correspond to the the "Server" section in the stack map
Concepts map
the app has a few core concepts:
- Users
- Entities : which can be authors (ex: wd:Q353), books (ex: wd:Q393018) and books' specific editions (ex: isbn:9782070389162). The term entities comes from wikidata terminology. See the entities map.
- Items : instances of book entities that a user says they have. It can be an instance of a work or a specific edition of a work.
- Transactions : discussion between two users about a specific item with an open transaction mode (giving, lending, selling). Transactions have effects on items: giving and selling an item make it move from the owner to the requester inventory; lending an item shows it as unavailable.
- Groups: groups of users with one or more admins
Contribute
For code-related contributions, see How to contribute on wiki.inventaire.io.
Documentation
see docs
Wiki
see wiki.inventaire.io You may want to directly go to the technical wiki page
API
see wiki: API
Administration
see Administration