Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.rst

simpleshelf: track your books

simpleshelf stores your personal library of books to read, have read, want to read, and lets you track your progress.

simpleshelf is deliberately designed for simplicity: it tracks enough information for you to identify a book, and to get more information from other sources. The (envisioned) links to OpenLibrary, the Library of Congress, and others will provide more detailed information.

Technical details

simpleshelf is a web application; it stores data in CouchDB, and presents it with a single page app served by NodeJS and written in Backbone.js.

Tools, libraries, plugins

How to install

Development

  1. Install Docker, docker-compose, and Docker App.

  2. Install NodeJS.

  3. Install gulp globally.

  4. Install node dependencies: npm install.

  5. Build the web app:

    # Choose the appropriate NODE_ENV - you can customize & extend the configurations.
    NODE_ENV=dev gulp buildForDocker
    # to continuously build after changes
    NODE_ENV=dev gulp appWatch ddocWatch
    
  6. See the development section in Installation

Production

Note

Presently there is no pre-built image; you will have to install as a developer.

  1. Follow the Development steps above, through the npm install step...

  2. Build the web app:

    # Choose the appropriate NODE_ENV - you can customize & extend the configurations.
    NODE_ENV=production gulp buildForDocker
    
  3. In the target directory, pass the initial CouchDB admin name & password to couchdb_init.sh, and run it.

  4. Run the app: see the production section in Installation

  5. ONE-TIME To seed CouchDB's initial databases:

    # NOTE: the containers MUST be running, and you MUST be able to access them.
    # CDB_USER, CDB_PW: user and password for the standard user in this database; it is acceptable to use the admin user's credentials.
    # The two "node" values are intentional (the first references the node container, the second runs the node executable).
    # It is safe to run multiple times; a flag will be set once it successfully runs.
    sudo DOCKER_ACCT=A docker-compose -f docker-compose.yml -f docker-compose-production.yml exec \
      --env CDB_USER=Y --env CDB_PW=Z node node runsetup.js
    
  6. Restart the server if the seed was necessary.

Configuration

Available configuration values are:

  • Port to expose
  • Volumes to customize

How to test

  • gulp testInBrowser: runs the BrowserSync runner, launching (or updating) the test page, typically at http://localhost:3000/index.html.
  • gulp testWatch: run the console and browser tests, reloading both when any code changes.

License

GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPL-3.0)

About

simpleshelf: track your books

Resources

License

You can’t perform that action at this time.