All Projects → TransparencyToolkit → DocManager

TransparencyToolkit / DocManager

Licence: GPL-3.0 license
Universal backend for indexing, storing, and querying documents.

Programming Languages

ruby
36898 projects - #4 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to DocManager

Mrdoc
online document system developed based on python. It is suitable for individuals and small teams to manage documents, wiki, knowledge and notes. like gitbook.
Stars: ✭ 1,129 (+5031.82%)
Mutual labels:  document-management
Mm Wiki
MM-Wiki 一个轻量级的企业知识分享与团队协同软件,可用于快速构建企业 Wiki 和团队知识分享平台。部署方便,使用简单,帮助团队构建一个信息共享、文档管理的协作环境。
Stars: ✭ 2,364 (+10645.45%)
Mutual labels:  document-management
document-management-software
LogicalDOC Community open source document management system https://www.logicaldoc.com
Stars: ✭ 70 (+218.18%)
Mutual labels:  document-management
Seafile
High performance file syncing and sharing, with also Markdown WYSIWYG editing, Wiki, file label and other knowledge management features.
Stars: ✭ 9,201 (+41722.73%)
Mutual labels:  document-management
Wp Document Revisions
A document management and version control plugin that allows teams of any size to collaboratively edit files and manage their workflow.
Stars: ✭ 152 (+590.91%)
Mutual labels:  document-management
Mayan Edms
Free Open Source Document Management System (mirror, no pull request or issues)
Stars: ✭ 226 (+927.27%)
Mutual labels:  document-management
Lodestone
Personal Document Archiving (DMS, EDMS for Personal/Home Office use)
Stars: ✭ 426 (+1836.36%)
Mutual labels:  document-management
EdPaper
Helps you organizing your paperwork
Stars: ✭ 56 (+154.55%)
Mutual labels:  document-management
Cmissync
Synchronize content between a CMIS repository and your desktop. Like Dropbox for Enterprise Content Management!
Stars: ✭ 153 (+595.45%)
Mutual labels:  document-management
gemma-zaken
Samen ontwikkelen van API's voor Zaakgericht werken
Stars: ✭ 40 (+81.82%)
Mutual labels:  document-management
Community
Modern Confluence alternative designed for internal & external docs, built with Golang + EmberJS
Stars: ✭ 1,286 (+5745.45%)
Mutual labels:  document-management
Communityserver
Free open source office suite with business productivity tools: document and project management, CRM, mail aggregator.
Stars: ✭ 1,363 (+6095.45%)
Mutual labels:  document-management
Papernic
Open Source Document Management & Collaboration System
Stars: ✭ 247 (+1022.73%)
Mutual labels:  document-management
Papermerge
Open Source Document Management System for Digital Archives (Scanned Documents)
Stars: ✭ 1,177 (+5250%)
Mutual labels:  document-management
j-lawyer-org
Main project containing all submodules for building an entire j-lawyer.org system. Submit issues (bugs, enhancement requests) here.
Stars: ✭ 35 (+59.09%)
Mutual labels:  document-management
Organize
The file management automation tool.
Stars: ✭ 883 (+3913.64%)
Mutual labels:  document-management
Paperwork
Personal document manager (Linux/Windows) -- Moved to Gnome's Gitlab
Stars: ✭ 2,392 (+10772.73%)
Mutual labels:  document-management
i-librarian-free
I, Librarian - open-source version of a PDF managing SaaS.
Stars: ✭ 110 (+400%)
Mutual labels:  document-management
everydocs-core
A simple Document Management System for private use with basic functionality to organize your documents digitally
Stars: ✭ 112 (+409.09%)
Mutual labels:  document-management
paperwork-backend
Backend part of Paperwork (Python API, no UI)
Stars: ✭ 18 (-18.18%)
Mutual labels:  document-management

This is a backend for Transparency Toolkit's other tools (LookingGlass, Harvester, Catalyst). It indexes data, stores the documents, and processes queries all in one place. All the specifications for what data sources are available and what fields they have are also handled by DocManager.

Installation

Dependencies

  • elasticsearch 5.4.0
  • ruby 2.4.1
  • rails 5
  • postgresql

Setup Instructions

  1. Install the dependencies and configure
  1. Run
  • Start elasticsearch (exact method depends on installation method)
  • rails server

Software and Config File Structure

Project and Data Source Configuration Files

Configuration files for data sources and projects are stored in the dataspec_files directory. This has three directories with three types of sub-files-

  • projects: A project is a collection of all data on a particular topic (or that you want stored in the same elasticsearch index). It is only possible to access one project at a time, but you can switch between multiple projects. Each project can have multiple data sources. The configuration files specifying what data sources a project includes, what it is called, etc. are in the projects directory.
  • data_sources: Each data source needs a config file to specify what fields it has, where each should show up on the various apps, it's name, etc. The correct data source file is automatically loaded into the other apps when needed and all supported data sources have pre-written config files.
  • fields_for_all_sources: These config files specify what fields every data source has, such as those Harvester uses for managing versions and threads. The fields in this directory will be loaded into every data source automatically.

These files are automatically loaded into DocManager and used by the apps that query it. But the specific project you want to access/use may need to be set in configuration options in the other apps.

Code Outline

The code is divided into the following components:

  • analyzers: Config files that elasticsearch uses to determine how it should index data in various languages.
  • controllers: Handle incoming requests to the API. These don't have much content themselves, but mostly include other functions for managing indexing, queries, and dataspecs.
  • dataspec: Load in the project and data source config files, generate models for new data sources using metaprogramming, and retrieves the appropriate source and project objects when requested.
  • index: Indexes the data in elasticsearch, including preprocessing tasks like setting a unique ID (that is consistent across reindexes), tracking different versions of the same data, handling different formats of date fields, and generally managing messy data. Also handles data deletion.
  • models: Specify the fields that should be saved in the database for projects and data sources. Most of the management and creation of these sources is initially handled in the modules in the dataspec directory.
  • queries: Process and run elasticsearch queries. Includes everything from getting the documents to load and showing the total number to actual search queries.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].