This project is for a technical interview at a company called Musala Soft.
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.
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.
- Install .Net 6.0 (https://dotnet.microsoft.com/en-us/download)
- Install Git (https://git-scm.com/downloads)
- Clone the repository (
git clone https://github.com/leynier/gateways-net.git
) - Navigate to the root of the repository (
cd gateways-net
) - Install the project dependencies (
dotnet restore
) - Build the project (
dotnet build
) - Run the project (
dotnet run --project Gateways.Api
) - Open browser and navigate to https://localhost:7114/swagger