Skip to content

This project is for a technical interview at a company called Musala Soft.

License

Notifications You must be signed in to change notification settings

leynier/gateways-net

Repository files navigation

Gateways

License: MIT Tests Last commit GitHub commit activity Github Stars Github Forks Github Watchers GitHub contributors

This project is for a technical interview at a company called Musala Soft.

Description

This sample project is managing gateways - master devices that control multiple peripheral devices.

Your task is to create a REST service (JSON/HTTP) for storing information about these gateways and their associated devices.

This information must be stored in the database.

When storing a gateway, any field marked as “to be validated” must be validated and an error returned if it is invalid.

Also, no more that 10 peripheral devices are allowed for a gateway.

The service must also offer an operation for displaying information about all stored gateways (and their devices) and an operation for displaying details for a single gateway. Finally, it must be possible to add and remove a device from a gateway.

Each gateway has:

  • a unique serial number (string),
  • human-readable name (string),
  • IPv4 address (to be validated),
  • multiple associated peripheral devices.

Each peripheral device has:

  • a UID (number),
  • vendor (string),
  • date created,
  • status - online/offline.

Other considerations

Please, provide

  • Basic UI - recommended or (providing test data for Postman (or other rest client) if you do not have enough time.
  • Meaningful Unit tests.
  • Readme file with installation guides.
  • An automated build.

Installation guide