Master Index Software

From Open Source Ecology
Jump to: navigation, search

Overview

Goals

A new software is being created for managing the GVCS modules and versions as defined in Naming and Identification and Master Index.

This software should fulfill these top level user stories:

  • As a GVCS developer, I have a central database for the latest machine/module versions.
  • As a OSE project manager/product owner, I can judge how this application can be used in combination with the existing databases (dozuki, development spreadsheets, wiki).

The long-term goal is to build a game changing 3D CAD application which is open source and allows real time collaboration.

Collaborators

For easy referral, some of the collaborators are listed here:

Specifications

Definitions

The following definitions apply for the software design. The terms used in GVCS so far (and in a future front-end) may differ.

  • Project: An assembly that is treated as an individual project (e.g. Tractor, Power Cube). GVCS: "Machine"
  • Assembly: A major building block (e.g. Tractor, Frame, Grate). Consists of subassemblies or other assemblies. GVCS: "Module"
  • Subassembly: A minor building block, on which (e.g. Tractor, Frame, Grate). Conceptually, the same thing as an assembly. GVCS: "(Sub)Module"
  • Component??
  • Part: A minor, atomic part of a (sub)assembly. Will be printed on the BOM.
  • Interface: A description of how two (sub)assemblies depend on each other. An assembly may depend on an interface. Multiple subassemblies may fulfill the interface and are therefore compatible with the assembly.

Sprint #0, 2015-XX-YY

Infrastructure
-------------
1. Sign-up/Login/Logout --> using OpenID
2. Create Organization/Group (OSE would be an Organization).
3. Users can request to join organization, creator of Organization can approve.

Basically similar workflow to GitHub.

Concepts
-------------
1. Create/Edit/Delete a Product: CEB Press
2. Start a Product Version.
3. Create/Edit/Delete a Module: Shaker
4. Start a Module Version.
5. Add specific version Module to a specific version of Product.
6. A way to export live tables/diagrams to be embeddable in the OSE wiki.

View
-------------
* As a GVCS developer, I want to have an up-to-date overview about products/modules.
** Have list of modules in some list / tree structure
** Search items by anything
** Clickable tree diagrams for quick navigation
** For each item, have meta data: Wiki link, Dozuki Link --> note: this will create redundancy and cyclic dependencies of links. how to solve?

Export
-------------
* As a wiki editor, I want to include an up-to-date status of a machine/product, a module and the project.
** /master-index/api/status.xml?product=123 delivers an XML document with up-to-date info about this product (latest version, meta data, dependencies)
** /master-index/api/status-image.png?product=123 delivers a nice tree diagram about this product
** (same for modules)
** /master-index/api/global-status.xml delivers an XML file with info about latest activity, total products/modules/versions, ...
* (TBD) As a OSE page admin, I want to include images of ...

Note: Technically, a machine/product might also be part of another machine/product. So, the difference between the two should more of a front-end thing.

For login, use openID to create some feeling of Single-Sign-On with OSE wiki or dozuki.

Current status

  • ...