Skip to content
This repository has been archived by the owner on May 19, 2022. It is now read-only.

sccheruku/contact_manager.prototype

Repository files navigation

Contact Manager Prototype

Contact Manager Prototype is multi-tenant application that allows users to manage their contacts. Inspired by Eloqua and Salesforce, the application was built to allow schema to be customizable to suit the needs of different users. This application's [immature] framework aims to solve one of the problems in web development: providing platform as a service to multiple clients while fulfilling client-specific needs.

As described by the figure above - The user is able to use the application through the browser or using a mobile application. The Core Application Engine, Client Application Engine and Client DB Router are powered by NodeJS. These three pieces work together to manage the users' Application Schema and retrieve users' data from their client database.

Each user is associated with their own database which becomes available to them when the user creates an account.

The website is built using Ruby On Rails with AngularJS, this was to make the code base similar with the Mobile application which is built using Apache Cordova and Ionic Framework.

REST API Guide: Please see the live documentation here.

Create Account

POST /application/account

Request: {}

Response: {}

Sign in to Account

POST /application/account/signin

Request: {}

Response: {}

Get Account

GET /application/account/:accountId

Request: {}

Response: {}

Update Account

PUT /application/account/:accountId

Request: {}

Response: {}

Create CustomObject

POST /application/account/:accountId/customObject

Request: {}

Response: {}

Update CustomObject

PUT /application/account/:accountId/customObject/:customObjectId

Request: {}

Response: {}

Delete CustomObject

DELETE /application/account/:accountId/customObject/:customObjectId

Request: {}

Response: {}

Search CustomObjects

GET /application/account/:accountId/customObjects?name={name}&description={description}

Request: {}

Response: {}

Get CustomObject

GET /application/account/:accountId/customObject/:customObjectId

Request: {}

Response: {}

Get CustomObject ModelDefinitions

GET /application/account/:accountId/customObject/:customObjectId/modelDefinitions

Request: {}

Response: {}

Get CustomObject ModelDefinition

GET /application/account/:accountId/customObject/:customObjectId/modelDefinition/:customObjectModelDefinitionId

Request: {}

Response: {}

Create CustomObject ModelDefinitions

POST /application/account/:accountId/customObject/:customObjectId/modelDefinition

Request: {}

Response: {}

Update CustomObject ModelDefinitions

PUT /application/account/:accountId/customObject/:customObjectId/modelDefinition/:customObjectModelDefinitionId

Request: {}

Response: {}

Delete CustomObject ModelDefinition

DELETE /application/account/:accountId/customObject/:customObjectId/modelDefinition/:customObjectModelDefinitionId

Request: {}

Response: {}

Create CustomObjectData

POST /application/account/:accountId/customObject/:customObjectId/data

Request: {}

Response: {}

Search CustomObjectData

POST /application/account/:accountId/customObject/:customObjectId/data/search

Request: {}

Response: {}

Get CustomObjectData

GET /application/account/:accountId/customObject/:customObjectId/data/:customObjectDataId

Request: {}

Response: {}

Update CustomObjectData

PUT /application/account/:accountId/customObject/:customObjectId/data/:customObjectDataId

Request: {}

Response: {}

Delete CustomObjectData

DELETE /application/account/:accountId/customObject/:customObjectId/data/:customObjectDataId

Request: {}

Response: {}

Flow: AuthApp, AuthAcc, Parse Request, Map Request Object to Model, Validate, Perform CRUD

Validation: Validation at this time only exists for CustomObject and CustomObjectData mapping, but no custom validation yet.

Roadmap: Validations for models. Js library will be exposed.

Concerns: Since this is a prototype, there is no encryption of passwords or proper application level authentication. This can be added into the application source code.

About

contact_manager.prototype

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published