GithubHelp home page GithubHelp logo

tropy / tropy Goto Github PK

View Code? Open in Web Editor NEW
858.0 31.0 47.0 86.08 MB

Research photo management

Home Page: https://tropy.org

License: Other

JavaScript 85.84% HTML 0.16% Shell 0.02% GLSL 0.21% SCSS 13.76%
photo metadata electron node-js sqlite3 javascript linked-data rdf

tropy's Introduction

Tropy

Build Status Coverage Status

Bring order to your research — use the power of Tropy to organize and describe your research photos so you can find your sources whenever you need them.

Visit tropy.org to learn more or follow @[email protected] for important announcements. To get started, download the latest version of Tropy for your platform, check out the user's manual and join the discussion on the forums.

Interested to work on Tropy or create your own builds? Please find more details below. Happy hacking!

Installation

Visit tropy.org or the release page to download the latest version of Tropy.

You can also install Tropy via Homebrew, winget, or the AUR.

Installation from Source

Install the latest version of Node.js (at least the version that ships with the current Electron release) and all dependencies required to use node-gyp on your platform.

Clone this repository and install Tropy's dependencies:

$ npm install
$ npm run rebuild -- --force

To test that everything works, run:

$ npm test

Creating Builds

To create a dev-build for your current platform run npm run build. This will create a dev-build of Tropy in the dist folder.

Tropy Development

Start Tropy in dev-mode by running npm start.

Plugin Development

You can extend Tropy's functionality via plugins. To find out more, consult the plugin specification and clone the sample plugin to get started.

tropy's People

Contributors

abbymullen avatar buccalon avatar caro401 avatar dependabot[bot] avatar dlederle avatar earlyriser avatar flachware avatar hamogu avatar inukshuk avatar nmonteix avatar rbrdl avatar stakats avatar styts avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tropy's Issues

Add 'explode' action to items / photos

Add an action to 'break out' a selected photo and move it to a newly created item which inherits the original item's metadata.

With no photo selected, create new items for each photo contained in the selected item.

Allowed file formats

The import module for now seems to grey out / not able to select GIF or PNG formats.
Is this as foreseen or on the roadmap to be expanded?

Vocabulary Editor

  • Add an 'editable' flag to vocabularies
  • Support adding properties, classes, datatypes to editable vocabularies
  • Support exporting vocabularies as N3

Focus for new item

When creating a new item, focus should go to that item, or possibly even to the metadata pane (with title selected).

Resizable Columns (Item Table)

For styling reasons the item table body and head are two different tables; we will have to make the actual header columns resizable and add an invisible header row to the main item table which sets the column widths accordingly (for performance reasons we can't set the width of each table cell!).

TBD

  • Persist absolute or relative widths?
  • Resize behavior: always adjust column to the left of the handle -- push/pull columns to the right accordingly (horizontal scroll bars)?

Tab / enter behavior for metadata pane

Users should be able to enter metadata using only the keyboard. Suggest tab advances focus to next field; shift-tab goes back to previous field. Enter currently toggles out of edit; that's probably fine.

Compile SQLite with ICU extension

We need to compile the ICU extension into SQLite (statically linked against libicu, ideally re-using locale data which is already included in Electron) on all three platforms.

http://site.icu-project.org/download

http://stackoverflow.com/questions/6578600/how-to-compile-sqlite-with-icu
http://stackoverflow.com/questions/1818678/compiling-the-icu-sqlite-extensi…
http://stackoverflow.com/questions/9118273/using-only-utf8-encoding-in-sqli…

Alternatives

  • Use nunicode (smaller)
  • Register our own collator in node-sqlite3 which uses Intl.Collator included in Electron (which already ships with ICU locale data)

Setup CI Builds and Spectron Tests

  • Run build scripts on Travis CI Linux
  • Run build scripts on Travis CI macOS
  • Run build scripts on Appveyor
  • Run Spectron tests for builds

Install fails

Hiya -

Am having install woes (Mac OSX 10.11.6) at the rebuild stage and also just before:

dest is not a directory (too many sources)
at Object.error (/Users/[myusername]/node_modules/shelljs/src/common.js:130:27)
at cp (/Users/[myusername]/node_modules/shelljs/src/cp.js:219:12)
at /Users/
[myusername]/node_modules/shelljs/src/common.js:383:25
at Function.target.sqlite3 (/Users/
[myusername]/node_modules/tropy/scripts/rebuild.js:39:5)
at Object.global.target.(anonymous function) [as sqlite3] (/Users/
[myusername]/node_modules/shelljs/make.js:36:40)
at Function.target.all (/Users/
[myusername]/node_modules/tropy/scripts/rebuild.js:25:10)
at Object.global.target.(anonymous function) [as all] (/Users/
[myusername]/node_modules/shelljs/make.js:36:40)
at Timeout.onTimeout (/Users/[myusername]
/node_modules/shelljs/make.js:54:19)
at ontimeout (timers.js:380:14)
at tryOnTimeout (timers.js:244:5)

Then:

npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "rebuild"
npm ERR! node v7.7.4
npm ERR! npm v4.1.2
npm ERR! code ELIFECYCLE
npm ERR! [email protected] rebuild: node scripts/rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] rebuild script 'node scripts/rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the tropy package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node scripts/rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs tropy
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls tropy
npm ERR! There is likely additional logging output above.

Then:

npm ERR! [email protected] postinstall: npm run rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script 'npm run rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the tropy package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! npm run rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs tropy
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls tropy
npm ERR! There is likely additional logging output above.

In the error log, there's a lot of this -- silly vacuum-fs quitting because other entries in /Users/[myusername]/node_modules

I admit to being very new to this, and would ordinarily not attempt to do it, but Tropy has exactly what I need...

Export Plugins

Plugin System

  • Define Plugin API (must support async, will be passed items in JSON-LD)
  • Load Plugins into Tropy
  • Call Plugin from Tropy

TBD

  • UI to add/remove plugins
  • UI to configure plugins
  • Should plugins be allowed to prompt for user input?

Plugins

  • Omeka
  • Flickr
  • open-source DAMS

Fix Esper Resize Flicker

For some reason resizing Esper flickers when the resize is triggered by a Resizable (i.e., when resizing via Notepad or Panel) not when resizing the window. This is odd because both paths are managed by the same resize observer; furthermore, there was no flicker when we used different paths (listening for window resize and using the resizable callbacks directly).

The flicker seems to be caused by the actual resizing of the canvas not some other event (no flicker when we skip the actual resizing). Flicker persists even when we throttle the events so it can't be caused by a timing issue like the resizables triggering more frequently than resizing the window.

New item inheritance

When creating a new item, some users might desire a workflow where that item inherits values from a previously selected item.

For example, if I am entering items in succession, manually, nearly all of the locator, archive, and location metadata of n+1 will match that of the nth item.

On the other hand, if I don't want to inherit the existing item, this behavior would be annoying. Suggest we handle via keyboard shortcuts and a modifier key, e.g. command-N vs. command-shift-N, or similar.

Metadata fields: add source URL

Hi, not sure what metadata formats Tropy is intended to support in the future, but from the current option I'm missing a field to put the source URL in. Handy for Flickr accounts as well as library repositories and the likes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.