Note: This repository is a scrape version of the original code base and just for demo; the original one is private due to an NDA.
The "OSS-Middleware" project is part of a larger solution named: "BSS/OSS (Business/Operation Support System)" for "TIC (Telecom Infrastructure Company)- The largest Network Infrastructure Provider in the Middle-East."
The main job of the "OSS-Middleware" sub-system is providing a standard, secure, scalable, high-throughput, async, easy-to-use RESTful APIs for accessing/updating/provisioning Network Infrastructure objects/connections of:
- Data
- Switch
- Transmit Network Types in an asynchronous (Promise) manner.
It supports multiple Protocols including:
- CORBA
- ISMN
- MML
- REST
- SNMP
- SOAP
- RPC, etc.
It also can connect to multiple Network Management Systems (NMSes) provided by various Vendors, including:
- Huawei
- Cisco
- Fana
- Fiberhome
- Ewsd
- NCE
- Neax
- ZTE, etc.
The project has been coded in 3 phases which are as following:
- 1st Phase: from December 2020 to May 2021, which contains all the major functionalities and modules + 4 main Adapters
- 2nd Phase: from June 2021 to November 2021, which focused on extending functionalities and mainly developing various Adapters.
- 3rd Phase: from December 2021 to June 2022, which the provisioning features were developed.
and delivered in a fast-paced time-frame on Kanban methodology.
The Tech Team involved in the project consist of:
- 1 Application Architect/Lead Developer/Tech Lead/ Team Leader
- 2 Senior Back-end Developer (1 of them also as a major Code Reviewer)
- 2 Mid-Level Back-end Developer
- 3 Junior Back-end Developer
- 1 Lead DevOps Engineer
- 1 Mid-Level Front-end Developer
- 1 Product Owner
- 1 Scrum Master
- 1 Technical Writer
- 1 UI/UX Designer
The project is structured as a Micro-Service Modular system.
Its structure consist of:
- 1 Core Module: Which is upper-interface and the NBI of the sub-system and contains the core functionality of the sub-system.
- 1 Common Module: which contains the common objects and behaviors that other modules use as shared.
- Several Adapters: which named preceding with "Adapter" following by the vendor name and the network type.
- 1 Message Broker Module: which is used as a discovery module and configurer, and also the message broker driver module.
All modules act independently, in a state-less manner.
The project version-control is on Git and follows Semi-Git-Flow.
It contains three major, protected branches:
- Master: which is the equivalent to the "Production" branch. The hot-fixes are merged into it after code-review.
- Development: which is the development branch that all features and/or bug-fixes are merged into, after code-review.
- Debug: which is the mirror of the actual "Production" in the production environment, for debugging purposes.