Skip to content

Overview

Mordax edited this page Nov 19, 2019 · 2 revisions

Welcome to the VPIA documentation!

This has been built to help both technical and non-technical users of the platform to orient themselves and understand how to build and run the project.

The VPIA uses Node and MySQL on the backend - React on the front.

The platform is technically split up into large separate chunks.

Wiki Engine

A wiki engine is premade code that supports basic Wikipedia-esque functions. This involves:

  • Creating content connected to a user or even anonymously
  • Revision history - the ability to see who, when and what changed in content and to return to an earlier form
  • Allows multiple users to edit content

The VPIA currently uses Matterwiki, a simple functional wiki engine that supports revision, content creation and editor and even a basic search functionality.

One challenge is allowing the public to view content without modifying - Matterwiki only allows the admin to add users at the moment. This is due to all of the API routes being protected with a JSON web token.

There's also no support for user profile viewing.

WYSIWYG editor

Literally stands for "What you see is what you get", this is usually content editor software. Most Wiki editors use Markup languages - meaning if you want to, for example, bold a sentence, you have to manually put some kind of tag - such as *Word* or [b]word[\b].

The benefit of WYSIWYG is that what you write is exactly the same as the finished product and you don't need to mark up your content manually.

The editor that came bundled with Matterwiki has been removed.

The VPIA framework currently uses CKEditor5. It currently has basic formatting support and image support.

Database

Currently the Dataset has been transcribed into Airtable, a visually friendly and simple way of depositing information. The problem is we must be able to add in this content into a software database to pull in content. At the moment, there's no elegant solution to integrating.

The VPIA platform currently uses MySQL. We have implemented Caminte that allows us to switch between regular SQL databases and NoSQL databases.

Search (to be expanded)

Search is usually either a file that does database queries to return certain files the user requested or it can be an engine like ElasticSearch. Currently the search is done through simple query search. As we grow with need for advanced search, we must consider either adding an engine or manually modifying the existing code.

Force-Directed Graph (to be implemented in the future)

A large, customised part of the VPIA will be adding in a Force-directed graph. A force directed graph is a way of drawing graphs in a nice visualization. It will show the connection between the nodes, the researchers, the museums, the tribes and onwards. This does not come bundled with Matterwiki, so this will have to be investigated.

D3.js and Sigma.js are two proposed technologies to use.

Some kind of discussion (to be implemented in the future)

We would like to have some kind of way to put up articles and allow people to comment on them. This will most likely be done through a package. We still need to plan out the design of this.


VPIA-Storage

The VPIA-Storage is a separate Node project running as a fileserver. In order for the WYSIWYG editor to upload images, it needs to have access to the VPIA-Storage node server.

Clone this wiki locally