Artifact Tracer | Architecture Notes
artifactTracer is a mobile-oriented client-server application used to track physical tag information in a generic harvesting/sending/receiving pipeline. The purpose of this application is to provide a completely white-label functionally complete basis for SaaS vendor configuration and branding (coming).
Components
Server
The server-side component is a FeathersJS application, which provides REST and socket.io (preferred) client connection options. Data is persisted primarily using Mongoose schema definitions, which are integrated with joi validation objects. Authentication is also a FeathersJS function; we will default to deferring it to linked Google account verification. FeatherJS is primarily an AOP library; as such most of the functionality can be implemented as generic hooks attached to each service provided.
Client
On the client side, there is both a working CLI and a mobile client built with React Native for cross-platform use, using Bootstrap and _____..
Warnings
You can expect to see things like this, because I really enjoy my lambdas.
module.exports = function (app) { const mongooseClient = app.get('mongooseClient'); const { Schema } = mongooseClient;
const shortcuts = require('./shortcuts')(Schema);
const joi = shortcuts.joi();
////////////////////////
const name = 'Org';
const schema = joi.object().keys({
name: joi.string().required(),
cert: joi.string(),
owner: joi.object(),
groups: joi.array().items(joi.object),
});
////////////////////////
const obj = joi.juice(schema);
const model = mongooseClient.model(name, obj);
return model;
};