REX
is a full featured requirements management web server which was designed specifically for Aerospace DO-178B/C software processes. The goal of REX
is to provide a free, customizable, and simple alternative to other proprietary requirements management tools such as DOORS or JAMA. REX
is accessed through a convenient REST API, and can support any number of custom client applications.
Each requirement is uniquely identified by a name / id which is specified in the URL.
GET http://servername/requirements/REQ001
Requirement data is structured using a simple JSON structure in the request body. Each requirement has a customizable data field, and an optional log field to track changes.
PUT http://servername/requirements/REQ001
{
"data": {
"name": "Execute Flight Plan",
"description": "The flight plan shall be executed when the EXEC button is pressed"
},
"log": "Initial requirement from customer."
}
Requirement schemas can be customized on an individual basis with no database restructring. Need more information for certification? No problem, simply upload a new version of the requirement:
PUT http://servername/requirements/REQ001
{
"data": {
"name": "Execute Flight Plan",
"description": "The flight plan shall be executed when the EXEC button is pressed",
"type": "Systems Requirement",
"tracing": ["HLR001", "HLR002", "HLR003"]
},
"log": "Updated with fields recommended by the DER."
}
Deletes are also recorded and tracked in the history.
DELETE http://servername/requirements/REQ001
{
"log": "Customer now hates this requirement."
}
REX
automatically tracks changes and stores a history containing all of the log messages and versions of the requirement:
GET http://servername/requirements/history/REQ001
[
{
"log": "Initial requirement from customer.",
"version": 0
},
{
"log": "Updated with fields recommended by the DER.",
"version": 1
},
{
"log": "Customer now hates this requirement.",
"version": 2
}
]
Versions are accessed by supplying the version number to the history api
GET http://servername/requirements/history/REQ001/0
{
"data": {
"name": "Execute Flight Plan",
"description": "The flight plan shall be executed when the EXEC button is pressed"
}
}
- Filter based on JSON filter criteria.
- Baseline an existing set of requirements. Get baseline information for SCI reports. Reversion to baselines
- Organize requirements in a tree structure
- Install NodeJS from https://nodejs.org/en/
- Run
npm install
from within the project directory - Follow the instructions to install MongoDB and create the data directory from https://docs.mongodb.com/manual/tutorial/
- Add mongod to your path
- run
npm start
from within the project directory- This will start
mongod
,nodemon
, andtsc --watch
automatically. - By default, the server will be located at http://localhost:3000
- This will start