-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Gateways | ||
|
||
This project is for a technical interview at a company called [Musala Soft](https://www.musala.com/). | ||
|
||
## 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 | ||
|
||
- 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> |