https://github.com/complexdatacollective/server

A tool for storing, analyzing, and exporting Network Canvas interview data.

https://github.com/complexdatacollective/server

Science Score: 41.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 8 committers (12.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary

Keywords from Contributors

research social-network sna public-health network-canvas archival projection observability charts excel
Last synced: 10 months ago · JSON representation ·

Repository

A tool for storing, analyzing, and exporting Network Canvas interview data.

Basic Info
  • Host: GitHub
  • Owner: complexdatacollective
  • License: gpl-3.0
  • Language: JavaScript
  • Default Branch: master
  • Homepage: http://networkcanvas.com/
  • Size: 20.9 MB
Statistics
  • Stars: 2
  • Watchers: 7
  • Forks: 2
  • Open Issues: 24
  • Releases: 17
Archived
Created about 10 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Code of conduct Citation

README.md

Network Canvas Server

FOSSA Status

A tool for storing, analyzing, and exporting Network Canvas interview data.

Getting started

Background

This application runs on Electron and consists of two parts (and a third spawned), which correlate to Electron's main/rendering processes:

  1. src/renderer: The UI, which contains the configuration/export screens.
  2. src/main: The main process, manages the tray and spawns a server process
  3. src/main/worker: The background Server process which receives data and adds it to a store [storage is not yet implemented]

1. The UI

The UI is a React app which runs in Electron's BrowserWindow().

It is possible to test the UI by running npm run start, and viewing the various paths in your browser.

2. The server

The actual HTTP/Sockets server runs in a fork managed by the main process.

The main process itself acts a go-between for the UI and the server process.

Installation

This repository assumes that npm is installed. If you don't have it installed, here are installation instructions.

  1. Clone this repo.
  2. Go into the repo directory
  3. Initialize submodules: git submodule update --init

|npm run <script>|Description| |------------------|-----------| |start:electron| Serves your app from a dev server on port 4000.| |electron:dev| Starts the main electron app including background services.| |build|Compiles assets and prepares app for production in the /www directory.| |test|Runs testing suite.| |build-docs|Builds HTML API docs into the docs-build directory.| |electron|Runs the current code in electron, for testing.| |preflight|Run all linters, doc generators, and tests.|

Run npm run for a list of all available commands.

Dependencies

Node.js/NPM Versions

This project currently requires Node.js 12.14.1 to match the version used by Electron, and version 7.6.3 of npm.

MDNS

MDNS is used to advertise services to Network Canvas clients. On Windows and Linux, you'll need to install some dependencies first — see the mdns installation instructions.

The Network Canvas Readme has detailed instructions for getting MDNS running on Windows.

Running

To run the UI:

sh npm run build npm run server npm run start

To run the whole app (including server):

sh $ npm run build $ npm run electron

The electron app (and server components) are served out of the /www folder. Changes can be made in the /src folder but won't reflect in the app until another build is completed (npm run build && npm run electron).

Development workflow

  1. npm run start:electron: to start the webpack dev server
    • Note: must be running on port 4000.
  2. npm run electron:dev (in another terminal session)
    1. Copies the electron source to ./electron-dev
    2. Runs the electron app from there, including background services.

macOS Firewall during development

Electron.app runs an http server for device clients directly in the main process. If you've enabled your system Firewall, macOS will present an "Allow or Deny" dialog every time the app is opened. If you have a [free] Apple developer account, you can work around this by signing the (development) app in node_modules.

```sh cd ./node_modules/electron/dist

This assumes you have an existing Mac Developer signing identity created by Xcode.

If not, let it create one by building a new macOS app in Xcode.

If the signing identity still isn't found, look in Xcode settings, or

in Keychain's "My Certificates" for the name of a development cert.

codesign --force --sign "Mac Developer" --timestamp=none Electron.app --deep ```

Application Structure

. ├── config # Project and build configurations (webpack, env config) └── api # Auto-generated API specs └── jest # test setup files ├── public # Static public assets to be bundled └── src # Application source code └── main # Main Electron process └── server # Services & APIs └── renderer # GUI (react app)

Tests

config/jest/setupTestEnv contains helpers which can be imported by tests.

config/jest/setupTestFramework contains the following custom matchers:

  • .toMatchErrorMessage(expectedMessage): Use to check that an object contains a "message" property with a string value that (partially) matches the expectedMessage string.

JSDoc

By convention, all functions tagged with @async return a promise. The corresponding @returns and @throws tags document the corresponding resolved or rejected type.

API docs for clients

The device API (for Network Canvas tablet & desktop clients) is currently being documented with the OpenAPI spec, a.k.a. Swagger. The spec is generated when the electron-dev target is built. To generate manually, run node scripts/build-api-spec.js.

For now, you'll have to generate API-specific documentation based on the spec. One way is to use spectacle:

```sh

install

npm install -g spectacle-docs

publish to ./docs/api and start a server

spectacle --target-dir docs/api --development-mode --port 4400 config/api/api-spec-[version].json

...Now view at http://localhost:4400

```

License

FOSSA Status

Owner

  • Name: Complex Data Collective
  • Login: complexdatacollective
  • Kind: organization
  • Email: developers@coda.co
  • Location: Chicago, IL

We design, develop, and promote tools that let researchers explore complex structural data.

Citation (CITATION.cff)

cff-version: 1.2.0
title: 'Network Canvas: Server'
message: Please cite this software using these metadata.
type: software
authors:
  - given-names: Complex Data Collective
    orcid: 'https://orcid.org/0000-0003-4329-8540'
identifiers:
  - type: doi
    value: 10.5281/zenodo.6240479
repository-code: 'https://github.com/complexdatacollective/Server'
url: 'https://networkcanvas.com'

GitHub Events

Total
Last Year

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 1,124
  • Total Committers: 8
  • Avg Commits per committer: 140.5
  • Development Distribution Score (DDS): 0.54
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Bryan Fox g****t@b****m 517
Steve Mckellar s****e@w****k 272
Joshua Melville j****e@n****u 178
Rebecca Madsen s****w@o****m 99
Jamie Chung j****g@a****m 44
Rebecca Madsen r****n@h****t 11
dependabot[bot] 4****] 2
fossabot b****s@f****o 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 103
  • Total pull requests: 96
  • Average time to close issues: 10 months
  • Average time to close pull requests: 24 days
  • Total issue authors: 8
  • Total pull request authors: 7
  • Average comments per issue: 2.17
  • Average comments per pull request: 1.18
  • Merged pull requests: 58
  • Bot issues: 0
  • Bot pull requests: 31
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • bryfox (33)
  • jthrilly (30)
  • wwqrd (17)
  • pfsj (10)
  • rebeccamadsen (8)
  • jamieshark (3)
  • dirusulixes (1)
  • balintneray (1)
Pull Request Authors
  • dependabot[bot] (31)
  • bryfox (24)
  • jthrilly (16)
  • wwqrd (11)
  • jamieshark (7)
  • rebeccamadsen (6)
  • fossabot (1)
Top Labels
Issue Labels
Server (40) enhancement (15) bug (11) new feature (9) question (9) known issues (4) discussion (3) NC (2) refactor (2) blocker (2) user-feedback (1) duplicate (1) regression (1) linux (1)
Pull Request Labels
dependencies (31) Server (2) bug (1) enhancement (1) new feature (1)