Coder Social home page Coder Social logo

lajavaness / annotto Goto Github PK

View Code? Open in Web Editor NEW
43.0 3.0 0.0 6.84 MB

Annotto is the only go to annotation tool to successfully annotate your documents at scale

License: Apache License 2.0

JavaScript 68.16% Shell 0.06% Dockerfile 0.09% TypeScript 31.04% HTML 0.05% CSS 0.59%
ai ia annotate annotation annotation-tool

annotto's Introduction

nnotto

produced by La Javaness

GitHub deploy GitHub release Dependency-Track Codacy Security Scan CodeQL

Website โ€ข Docs

Description

Annotto is the only go to annotation tool to successfully annotate your documents at scale.

Table of contents

  1. Start with docker
  2. Start for local development

Start with docker

  docker run --rm -d --name annotto -p 3000:3000 -p 8080:8080 ljnrepo/annotto:latest

Annotto will be available at http://localhost:3000 with default credentials

username: admin
password: test

Keycloak will be available at http://localhost:8080 with default credentials

username: admin
password: admin

Start for local development

Prerequisites

  1. Node 16+
  2. Mongo 4.4
  3. Keycloak 15.0.1
  4. PostgreSQL 13+

Launch the app

  1. Install project dependencies
yarn install
  1. Launch environment
docker-compose up -d
  1. Launch annotto
yarn start:dev

Environment variables

Name Default Description
PORT 5001 Server listening port
NODE_ENV development NODE Environment to use "[development, test]"
ENCRYPTION_SECRET_KEY aSecretKey A Secret Key used to encrypt AWS creds (symmetric)
MONGO_URL mongodb://localhost:27017/ljn_annotto_dev Mongo connection string
ANNOTTO_FRONT_URL http://localhost:3000 Annotto Front base url
KEYCLOAK_REALM annotto Keycloak Realm (preconfigured if started with docker-compose_)
KEYCLOAK_AUTH_URL http://localhost:8080 Keycloak auth url (preconfigured if started with docker-compose_)
KEYCLOAK_CLIENT_ID annotto Keycloak client id (preconfigured if started with docker-compose_)
KEYCLOAK_ADMIN_CLI_SECRET n4i0V9jD9LVQAYxBeldCYFGucoTPUKaa Keycloak admin-cli secret (preconfigured if started with docker-compose_). This is needed to use admin REST API for keycloak
KEYCLOAK_GROUP_ID 892e9f41-abae-4080-95b9-a29945c73352 Keycloak annotto group's (preconfigured if started with docker-compose_). This is needed to use admin REST API for keycloak
ANNOTTO_UPLOAD_MAX_FILE_SIZE 1048576000 Max file size permitted to upload (default = 1000 * 1024 * 1024)
ANNOTTO_UPLOAD_BATCH_SIZE 50000 Max file size permitted to upload (default = 1000 * 1024 * 1024)

Users and Roles

When starting Annotto, you will get 3 users preconfigured with three different role ("admin"|"user"|"dataScientist')

The different default users are:

username password role
admin test admin
data test dataScientist
user test user

See more documentation on Keycloak here

Contributing

Team Conventions

This package is co-maintained by all front-end developers at La Javaness. Each contribution must follow established conventions.

We ensure consistent code formatting with Prettier, code quality with ESLint, and commit message formatting with commitlint.

Incoming code must not cause existing tests to fail; that rule is enforced with a precommit hook.

Code should be pushed to a feature/* or fix/* branch based on the type of change made, and a Pull Request made against the next branch. A fellow developer must approve the PR before it can be merged.

Commits

Formatting

The project uses semantic-release to upgrade, document and deploy its NPM package, and commitlint to ensure all commit messages are understood by semantic-release.

Please read the upstream documentation to understand the enforced format. Below is an excerpt for quick reference:

Commit message Release type
fix(pencil): Stop graphite breaking when too much pressure applied Patch Release
docs(README): Append a Use graphite properly section to README Patch Release
refactor: Improve 'graphiteWidth' option Patch Release
style: Remove all semi-colons Patch Release
feat(pencil): Add 'graphiteWidth' option (Minor) Feature Release
perf(pencil): Remove graphiteWidth option (Major) Breaking Release
BREAKING CHANGE: The graphiteWidth option has been removed. (Major) Breaking Release

Below is the meaning of the different commit prefixes:

  • feat: (new feature for a component or new component)
  • fix: (bug fix in a component)
  • docs: (changes to the documentation)
  • style: (formatting, missing semi colons, etc; no production code change)
  • refactor: (refactoring production code, eg. renaming a variable)
  • test: (adding missing tests, refactoring tests; no code change)
  • perf: (changes to code for performance reasons)
  • chore: (updating yarn tasks, CI pipelines, build scripts, etc; no code change)

Precommit Hooks

Both test:ci and prettier commands are run before each commit to ensure the code remains well-formatted and tested.

Ensure the `.git/hooks/pre-commit`` file is present in your repository.

The yarn prettier command used by pre-commit hooks automatically fixes style issues and stages any unstaged content into your commit, to make sure those style changes are staged. This prevents the use of partial commits. If you want to commit only part of your changed files, you can stash unstaged code before committing. This is the preferred way of doing things at La Javaness.

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.