Register
Submit a solution
The challenge is finished.

Challenge Overview

Project Donner: Mertesacker

Welcome to Project Donner:

Mertesacker is the next challenge in the Project Donner suite of micro-services. This challenge will be a MEAN.IO stack API that will underpin a followup HTML5 UI challenge.

The overall purpose of the app is to develop a MEAN.IO package that contains a set of endpoints that provide REST based CRUD operations for managing a number of objects. These objects are connected to each other in a hierarchical fashion.

Features:

Objects to create API endpoints for:

  • Environments:
    • fields:
      • Id: unique record Id
      • name: string
      • ownerId: reference to User object for calling user
      • created: timestamp
      • updated: timestamp
    • description:
      • represents an Environment in the system
      • top level object
  • Groups:
    • fields:
      • Id: unique record Id
      • name: string
      • environmentId: reference to parent Environment object
      • ownerId: reference to User object for calling user
      • created: timestamp
      • updated: timestamp
    • description:
      • represents a single Group within a Environment collection
      • one-to-many with Environment
  • Devices:
    • fields:
      • Id: unique record Id
      • name: string
      • groupId: reference to parent Group object
      • ownerId: reference to User object for calling user
      • typeId: reference to Device Type object ownerId: reference to User object for calling user
      • created: timestamp
      • updated: timestamp
    • description:
      • represents a single Device within a Group collection
      • one-to-many with Group
  • Device Attributes:
    • fields:
      • Id: unique record Id
      • name: string
      • value: string
      • ownerId: reference to User object for calling user
      • deviceId: reference to parent Device object
      • created: timestamp
      • updated: timestamp
    • description:
      • represents an attribute describing the device
      • key/value pair
  • Device Events:
    • fields:
      • Id: unique record Id
      • name: string
      • ownerId: reference to User object for calling user
      • created: timestamp
      • updated: timestamp
    • description:
      • represents event thrown by Device
      • junction object
  • Device Types:
    • fields:
      • Id: unique record Id
      • name: string
      • ownerId: reference to User object for calling user
      • created: timestamp
      • updated: timestamp
    • description:
      • represents a type of Device
      • look up object
      • CRUD requires “admin” user role
  • Event Types:
    • fields:
      • Id: unique record Id
      • name: string
      • ownerId: reference to User object for calling user
      • created: timestamp
      • updated: timestamp
    • description:
      • represents a type of Event
      • look up object
      • CRUD requires “admin” user role

ERD:
ERD

Setup:

  • Send an email to lazybaer and request to be added to the GitLabs Project Donner Team
  • Once added to the team for the Mertesacker repository, fork the repository and, when ready, make a merge request with your submission to this branch

Misc:

  • ownerId fields are look ups to the built in MEAN.IO user object
  • created fields are set at record creation
  • updated fields are update on data changes
  • an authenticated user session is required for all operations
  • some operations require the user to have an “admin” user role, as noted
  • end deliverable should be a MEAN.IO package


Final Submission Guidelines

  • MEAN stack only. 

  • Upload all your source code as a zip

  • Make a pull (with the same source code as your zip) from your forked repository to the project repository

  • Make a Merge Request only after the Deadline

  • Upload documentation for how to run your submission.

  • Provide a video overview of your submission

ELIGIBLE EVENTS:

2015 topcoder Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30044695