---
title: CSN task 3 Team 1
---
:::info
# CSN task 3
Names: Mikhail Syropyatov, Abdullah Al Noman, Emeka Michael Nzeopara, Gideon Oki
:::
:::info
3.1. Define the requirements
* Functional Requirements
* Nonfunction Requirements
:::
<center>
**Functional Requirements**
</center>
Functional requirements are basic description of what a software seeks to achieve a failure at this would make the software a complete failure. This addresses its key features and attributes. These features are mandatory and usually focused on the user requirements. Five key functional requirements for this systems include; data management, resource management, code management, communications and Quality of Service (QoS).
**Functional Requirement For The Project**
* Monitor the status of all the Device with a single dashboard
* Perform pre-defined queries by the customer to gain access to more information about the device
* Device status should be received through the single dashboard
* Sales team should add customer manually into system
<center>
**Non Functional Requirements**
</center>
This has to do with the expected performance of the system. This can also be seen as metrics or standards the system would be held up to and which it is expected to deliver on. These features are desirable and focused on user expectations.
**Non-Functional Requirements**
**Performance**
* Response Times - How long should the app take to load?
* Processing Times - What is the acceptable data processing time?
**Capacity & Scalability**
* Throughput - How many transactions can the system handle?
* Storage - How much data will be stored?
* Growth - How much server/data capacity would we need to plan for?
**Availability**
* Hours of operation
* Location of operation
**Maintainability**
* Architecture Standards - Are we developing using standard solution?
* Coding Standards - What language and coding framework are used?
**Recovery**
* Restore Time - How long before the app is back up?
* Backup Time - How long to backup data?
**Security**
* How secured will this application be?
* Authentication process that would be required?
* Securing user data, is paramount
:::info
3.2. Map the components of the architecture
:::
<center>

Figure 1: Components within the Architecture
</center>
:::info
3.3. Choose the Technology stack.
:::
<center>
**Technology stack:**
</center>
1. **Load Balancer - Nginx, Linux ubuntu server:** This technology are quite compartable for picking several redundant servers set up. Redundancy in turn would satisfy availability through increased reliability and scalability.
2. **Business servers - Linux ubuntu server, spring java, redis (caching service):** This was chosen because of the speed it offers between server and client. This would favour the response time and the processing time of the web appilcation. Because of its ease to configure, it would also support our maintainability and availability requirements
3. **Databases - PostgreSQL:** A good choice for scalability, security and reliability. This would also help us in the cost of the project. Since there are chances that we may have to scale the platform in the future, this stack would be a perfec choice.
4. **Services:** It depends of service(if parser - java or pyhton, and like that, depends of service speciality).
5. **Authentication service - JWT Java Spring Boot Security:** This token is stateless and also can be attributed to one user per time. This can reduce unwanted load on the server and improve the capacity requirement.
6. **Controller - Raspberry PI with specialized OS:**
7. **Router - Mikrotik**
:::info
3.4 Design the architecture:
:::
The application architecture can be found <a href="https://drive.google.com/file/d/1iXF_WMX_dtgLn9GUN-yjxCi9Hk9uJaQM/view?usp=sharing">here </a>
<center>

Figure 2: The Application Architecture
</center>
:::info
3.5. Write a detailed architecture document
:::
Based on the scenario given, we have analyzed the requirements and have come up with a unique architecture that is production-ready and mostly customer-oriented. This sections explains the purpose, scope, workflow of the architecture and related areas.
**Purpose**
The primary purpose of this solution is to simplify the existing solution and make more efficient as well as convenient for the consumers. As a company, this solution is considered to be failed proof and it addressed the vital concerns of consumers. Automated workflow with advanced technologies are expected to work far better than any solution existing out there.
Customers should be able to use single dashboard to manage their smart devices more efficiently in a secure manner. As a company, we are expected to do minimal work for the customer so that the workflow has minimal latency.
**Scope**
Scopes has been outlined to meet the requirements. They are following -
- [x] Centralized dashboard to manage all IoT devices.
- [x] Advanced technologies that can make almost realtime system.
- [x] Convenient dashboard with modern visualization.
- [x] Device enrollment with minimal effort.
- [x] Cost-effective solution with fail-proof architecture.
**Abbreviations**
- IoT - Internet of Things
- QoS - Quality of Service
- SDK - Software Development Kit
- SQL - Structured Query Language
- JWT - JSON Web Token
- IdP - Identity Provider
**Workflow**
Let's talk about the IoT systems first. All the sensors of smart devices initillay gets connected with the home router including all the atuators. We suggest to plug in our smart device `LS3 SmartEdge (Controller)` to the router through the power over ethernet technologies.
`LS3 SmartEdge (Controller)` is a specially developed device owned by the company to their valuable clients. Under legit entitlements, each client is provided with the device. This device mostly does the intelligence works such as capturing signals from IoT devices and transmit it to the balancer or server. Besides, this devices is capable to take actions based on the incoming singals form server. In addition, it does filtering and other related works.
Singnals are handled by balancer and send to the core servers for further processing. WIth advanced servers and technologies stack both frontend and backend are expected to function efficiently to serve whatever the workload is. Dashboard has been made simple and interactive. UI/UX engineers have made sure that the best experience a user can get from our web console.
With the web console, here comes the another important area - onboarding users and proper access controls. Since balancer is the edge connection from server side where authentication services are communicated with. There is an special IdP providers set up in our environment. This has connection with client's mobile application as well as our sales team. We do minimal team engagement to make sure the whole system including the authenticaton process becomes smoother.
For better security, there is a seperate storage for JWT tokens. We have our regular database systems isolated from the production network for servers. Proper access control is implemented for both token storage as well as regular database servers.
For better accuarcy of signal processing and response, we have introducted our own AI/ML models that can handle most of the complex jobs such as false positive detection and threats mitigation.
Customer has more control to their devices with minimal latency. This is possible with our modern technology stack and the arrangement of the different components based on their convenience for usage. When customer executes pre-query from the web console, it takes very short time to reach our smart device sit in customers environment. With its own intelligence, the `LS3 SmartEdge` can handle requests earliest possible than any other system.
With our own smart device, intelligence and unbeatable technology stack, we are quite optimistic that our device would be a revolution to the market. Considering customers interest and convenience, any one can afford the solution based on their needs.
## Link for a video
We record video and place it in <a href="https://drive.google.com/file/d/1gwdGBR7YJs6R5QSQqa_OVfhgNG_Hj5G4/view?usp=sharing">google disk</a>
## Reference:
1. https://forgeahead.io/blog/what-are-the-4-stages-of-iot-architecture/
2. https://medium.com/storyblocks-engineering/web-architecture-101-a3224e126947
3. https://webimages.mongodb.com/_com_assets/cms/kskl341h8shxeokgi-MongoDB-IoT-reference-architecture.png?auto=format%252Ccompress
---------------------------------------------------