Skip to content

Commit 1a9297a

Browse files
Professionalize project documentation
1 parent f8d8826 commit 1a9297a

4 files changed

Lines changed: 69 additions & 34 deletions

File tree

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
__pycache__/
2+
*.py[cod]
3+
.venv/
4+
venv/
5+
.env
6+
.pytest_cache/
7+
.mypy_cache/

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Alberto Mateus P. da Gama
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 41 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,57 @@
11
# NetMaster CLI/API
22

3-
Bem-vindo ao **NetMaster CLI/API**, um projeto open-source concebido como um template base para automação de equipamentos de rede, ideal para uso em Hackathons, desafios de programação e estudos de arquitetura de software.
3+
Network automation template for provisioning and documenting network devices with a clean, extensible Python architecture.
44

5-
## Propósito Pedagógico e Técnico
5+
## Overview
66

7-
Este repositório foi criado com o objetivo de demonstrar a aplicação de **Clean Architecture** em um projeto Python moderno. Ele separa claramente as responsabilidades, facilitando a escalabilidade, manutenção e testes.
7+
NetMaster CLI/API is an educational and technical starter project for network automation. It separates domain rules, application use cases, interface adapters, and infrastructure details so students and engineers can evolve the repository into a CLI, REST API, or lab automation tool without mixing business logic with device-specific integrations.
88

9-
### Arquitetura (Clean Architecture)
9+
## Problem
1010

11-
A estrutura do projeto está dividida nas seguintes camadas:
11+
Network teams often start automation scripts as isolated one-off files. That makes testing, reuse, and onboarding difficult. This repository demonstrates a more professional baseline for VLAN provisioning, device inventory, and future SSH/API integrations.
1212

13-
* **`domain/`**: Contém as Entidades (ex: `NetworkDevice`, `VLAN`) e regras de negócio puras, independentes de frameworks externos.
14-
* **`application/`**: Contém os Casos de Uso (ex: `ProvisionVLANUseCase`), orquestrando o fluxo de dados entre as entidades e as interfaces externas.
15-
* **`interface_adapters/`**: Responsável por converter os dados no formato mais conveniente para os casos de uso e vice-versa. Aqui residirão as rotas web (FastAPI) e os comandos de terminal (Typer).
16-
* **`infrastructure/`**: Camada mais externa, contendo detalhes de implementação técnica, como persistência em banco de dados (SQLAlchemy) e comunicação com os equipamentos de rede via SSH (Netmiko).
13+
## Architecture
1714

18-
## Stack Tecnológica
15+
- `domain/`: pure entities such as `NetworkDevice` and `VLAN`.
16+
- `application/`: use cases such as `ProvisionVLANUseCase`.
17+
- `interface_adapters/`: future FastAPI routes, Typer commands, and serializers.
18+
- `infrastructure/`: future persistence, Netmiko drivers, and vendor-specific adapters.
1919

20-
O projeto utiliza as seguintes tecnologias:
20+
## Stack
2121

22-
* **Python 3.10+**
23-
* [**FastAPI**](https://fastapi.tiangolo.com/): Para criação de uma API RESTful moderna e assíncrona.
24-
* [**Uvicorn**](https://www.uvicorn.org/): Servidor ASGI para rodar a aplicação FastAPI.
25-
* [**Typer**](https://typer.tiangolo.com/): Para criação de uma Interface de Linha de Comando (CLI) robusta.
26-
* [**SQLAlchemy**](https://www.sqlalchemy.org/): ORM para persistência de dados.
27-
* [**Netmiko**](https://pynet.twb-tech.com/blog/automation/netmiko.html): Para conexões seguras (SSH) e interação com equipamentos de rede.
22+
- Python 3.10+
23+
- FastAPI and Uvicorn for REST APIs
24+
- Typer for command-line workflows
25+
- SQLAlchemy for persistence
26+
- Netmiko for SSH-based network device automation
2827

29-
## Como Iniciar
28+
## Getting Started
3029

31-
1. **Clone o repositório:**
32-
```bash
33-
git clone <sua-url-do-github>
34-
cd netmaster-cli-api
35-
```
30+
```bash
31+
git clone https://github.com/albertomateus9/netmaster-cli-api.git
32+
cd netmaster-cli-api
33+
python -m venv .venv
34+
.venv\Scripts\activate
35+
pip install -r requirements.txt
36+
```
3637

37-
2. **Ative o ambiente virtual:**
38-
* No Windows: `venv\\Scripts\\activate`
39-
* No Linux/macOS: `source venv/bin/activate`
38+
On Linux or macOS, activate the environment with:
4039

41-
3. **Instale as dependências:**
42-
```bash
43-
pip install -r requirements.txt
44-
```
40+
```bash
41+
source .venv/bin/activate
42+
```
4543

46-
4. **Expanda a implementação!**
47-
Comece implementando as interfaces em `interface_adapters/` e os adaptadores reais em `infrastructure/` guiados pelos casos de uso em `application/`.
44+
## Development Direction
4845

49-
---
50-
*Desenvolvido como um template base para aceleração de projetos de engenharia de redes.*
46+
- Implement repository interfaces for device inventory.
47+
- Add a Netmiko-backed network service for lab devices.
48+
- Expose the provisioning use case through FastAPI and Typer.
49+
- Add tests for domain entities and use-case orchestration.
50+
51+
## Professional Context
52+
53+
This repository reflects practical interests in telecom infrastructure, routing, network automation, and teaching software architecture through realistic engineering scenarios.
54+
55+
## License
56+
57+
MIT. See [LICENSE](LICENSE).
-1.23 KB
Binary file not shown.

0 commit comments

Comments
 (0)