https://github.com/leynier/gateways-net
This project is for a technical interview at a company called Musala Soft.
https://github.com/leynier/gateways-net
asp-net asp-net-api asp-net-core asp-net-core-api clean-architecture entity-framework entity-framework-core musalasoft technical-interview
Last synced: 2 months ago
JSON representation
This project is for a technical interview at a company called Musala Soft.
- Host: GitHub
- URL: https://github.com/leynier/gateways-net
- Owner: leynier
- License: mit
- Created: 2022-05-16T01:42:32.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-03T22:36:55.000Z (almost 3 years ago)
- Last Synced: 2025-04-02T20:41:59.298Z (6 months ago)
- Topics: asp-net, asp-net-api, asp-net-core, asp-net-core-api, clean-architecture, entity-framework, entity-framework-core, musalasoft, technical-interview
- Language: C#
- Homepage:
- Size: 81.1 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Gateways
[](https://opensource.org/licenses/MIT)
[](https://github.com/leynier/gateways-net/actions/workflows/tests.yaml)
[](https://github.com/leynier/gateways-net/commits)
[](https://github.com/leynier/gateways-net/commits)
[](https://github.com/leynier/gateways-net/stargazers)
[](https://github.com/leynier/gateways-net/network/members)
[](https://github.com/leynier/gateways-net)
[](https://github.com/leynier/gateways-net/graphs/contributors)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 ()
- Install Git ()
- 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