MCPcopy Index your code
hub / github.com/datagym-ai/datagym-core

github.com/datagym-ai/datagym-core @0.28

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.28 ↗ · + Follow
7,797 symbols 28,497 edges 1,002 files 720 documented · 9% updated 2y ago0.28 · 2023-06-01★ 515 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DataGym.ai

DataGym.ai is a modern, web based workbench to label images and videos. It allows you to manage your projects and datasets, label data, control quality and build your own training data pipeline. With DataGym.ai´s API and Python SDK you can integrate it into your toolchain.

DataGym.ai Workspace

:ledger: Ressources

:jigsaw: Features

  • Organize your data into different projects with tasks
  • Dashboard with useful statistics / overview
  • Tasks lifecycle with states (backlog, waiting, in progress, completed, skipped, reviewed)
  • Pagination, Filtering and Search
  • Integrated quality control / review process
  • Organize your media within datasets
  • Different storage types (direct upload, public url´s, aws s3 cloud storage)
  • Supported mime types: jpeg, png, mp4
  • Support of large high resolution images
  • Labeling features
  • Global classifications (image wide)
  • Image annotation
    • Variety of geometries: point, line, bounding box, polygons
    • Different classification types: text, checklists, option-box
    • Supports nested geometries (child-geometries)
  • Video annotation: Specialized editor for video labeling
    • Frame-by-frame navigation
    • Linear interpolation to track objects
    • Adjustable playback-speed
    • Analyze and extract video metadata (codec, framerate, duration, ...)
  • Image segmentation
    • Bitmap export
  • Feature-rich Workspace
  • Temporary screen manipulations: contrast, brightness, saturation
  • Hide unused geometry-groups for more clarity
  • Shortcut support
  • Panning and zooming, multi-select, moving, duplication
  • Supports transformation of the same geometry type
  • Context menu for geometries
  • Powerful REST API to build your own workflows
  • Python SDK Package
  • Data exporting- and importing (json)
  • Export your labeled data as json (works for images and videos)
  • Import your labeled data to refine your ml model
  • Export-/import your label configuration and use it in multiple projects

:dart: Quickstart

Running with docker-compose

The simplest way to run DataGym.ai locally is by using docker-compose.

  1. Download the docker-compose.yml from the projects root-directory
  2. https://raw.githubusercontent.com/datagym-ai/datagym-core/master/docker-compose.yml
  3. wget https://raw.githubusercontent.com/datagym-ai/datagym-core/master/docker-compose.yml
  4. Launch container using docker-compose up -d
  5. Wait until the initialization is done
  6. Navigate to localhost:8080

Local development, build manually

Build the whole project:

mvn clean install 

:ballot_box: Build with

  • Java / Spring Boot
  • Angular

:open_hands: Contributing

We would love to receive contributions - please review our Contributing Guide for all relevant details.

:scroll: License

This project is licensed under the MIT License - see the LICENSE file for details

Extension points exported contracts — how you extend this code

OauthUser (Interface)
Interface for user information delivered by cloud login. @author t [12 implementers]
datagym-security-mock/src/main/java/com/eforce21/cloud/login/api/model/OauthUser.java
EforceExceptionConverter (Interface)
Convert your own or your libraries/frameworks exceptions to eForce exceptions. Converters are typically chained, so be s [6 …
datagym-exception/src/main/java/com/eforce21/lib/exception/base/EforceExceptionConverter.java
BinFileConsumer (Interface)
Consumer for binaries and its metadata. Note that MetaData must/is always called first to allow writing headers. [9 implementers]
datagym-binaries/datagym-binaries-core/src/main/java/com/eforce21/lib/bin/file/model/BinFileConsumer.java
EntryConfigApiInterface (Interface)
(no doc) [7 implementers]
datagym-frontend/src/app/label-mode/service/entry-config-api/entry-config-api-interface.ts
DatasetAwsS3MediaService (Interface)
(no doc) [5 implementers]
datagym-backend/src/main/java/ai/datagym/application/dataset/service/awsS3/DatasetAwsS3MediaService.java
TokenConverter (Interface)
(no doc) [5 implementers]
datagym-security-mock/src/main/java/com/eforce21/cloud/login/client/web/TokenConverter.java
EforceExceptionWriter (Interface)
Write ErrorTOs to the HttpServletResponse. @author thomas.kuhlins [1 implementers]
datagym-exception/src/main/java/com/eforce21/lib/exception/base/EforceExceptionWriter.java
BinFileService (Interface)
Service for binary and metadata handling. Use BinFileEntity to reference "file handles" via JPA / FKs. [2 implementers]
datagym-binaries/datagym-binaries-core/src/main/java/com/eforce21/lib/bin/file/service/BinFileService.java

Core symbols most depended-on inside this repo

get
called by 633
datagym-security-mock/src/main/java/com/eforce21/cloud/login/client/ctx/SecurityContext.java
set
called by 615
datagym-security-mock/src/main/java/com/eforce21/cloud/login/client/ctx/SecurityContext.java
findById
called by 546
datagym-backend/src/main/java/ai/datagym/application/labelIteration/repo/LcEntryValueRepository.java
value
called by 421
datagym-frontend/src/app/shared/dg-select-modal/dg-select-modal.ts
add
called by 397
datagym-frontend/src/app/shared/dg-info/InfoSection.ts
filter
called by 232
datagym-frontend/src/app/label-mode/model/video/ValueLineFrameFilter.ts
setId
called by 166
datagym-backend/src/main/java/ai/datagym/application/media/entity/Media.java
content
called by 162
datagym-frontend/src/app/dataset/component/dataset-detail-home/upload-modal/upload-modal.component.ts

Shape

Method 6,237
Class 1,289
Function 147
Interface 83
Enum 41

Languages

Java61%
TypeScript39%

Modules by API surface

datagym-backend/src/test/java/ai/datagym/application/externalAPI/service/ExternalApiServiceImplTest.java77 symbols
datagym-backend/src/test/java/ai/datagym/application/dataset/service/DatasetServiceImplTest.java74 symbols
datagym-backend/src/test/java/ai/datagym/application/project/service/ProjectServiceImplTest.java73 symbols
datagym-backend/src/test/java/ai/datagym/application/labelTask/service/LabelTaskServiceImplTest.java73 symbols
datagym-backend/src/test/java/ai/datagym/application/labelIteration/service/LcEntryValueServiceImplTest.java71 symbols
datagym-backend/src/test/java/ai/datagym/application/security/util/DataGymSecurityTest.java59 symbols
datagym-backend/src/main/java/ai/datagym/application/externalAPI/service/ExternalApiServiceImpl.java48 symbols
datagym-backend/src/main/java/ai/datagym/application/labelIteration/service/LcEntryValueServiceImpl.java46 symbols
datagym-backend/src/test/java/ai/datagym/application/externalAPI/controller/ExternalApiControllerTest.java44 symbols
datagym-frontend/src/app/svg-workspace/service/workspace-internal.service.ts43 symbols
datagym-backend/src/main/java/ai/datagym/application/dummy/models/bindingModels/labelIteration/DummyValueUpdateBindingModel.java40 symbols
datagym-backend/src/test/java/ai/datagym/application/labelConfiguration/service/LabelConfigurationServiceImplTest.java39 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add datagym-core \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact