Home | Escopo | Arquitetura | Configuração | Mockups | BD | Instalação | Gerência | Processos |
---|
Página da Arquitetura do Sistema
O projeto Notar e Anotar utiliza uma arquitetura orientada a serviços. Apenas um App se comunica com a API externa da aplicação, que por sua vez salva os dados em um banco de dados.
Como cliente foi feito um app nativo utilizando dart com o framework flutter, o servidor da aplicação foi escrito em Golang e o banco de dados escolhido foi o MongoDB.
O applicativo utiliza a API RESTful por meio de requisições http.
Esta página possui todas as informações da Arquitetura do seu projeto, Como:
- Rotas de Backend (Arquitetura funcional)
- Objects – Backend API
- Methods – Backend API
- Arquitetura Não Funcional
- Diagrama de Pacotes / Componentes
- Arquitetura de software
- Diagrama de Deploy
- Documentação sobre aplicação de
- Design do Projeto
- Análise dos principios SOLID
- Code Review
Devem ser apresentados das seguintes formas:
- Imagens ou Gifs
- Diagramas ou Sistemas
- Descrições ou Textos explicativos
Arquitetura
Arquitetura funcional
Rotas
A API do back-end possui as seguintes rotas:
/user
/subject
/weekly_routine
/routine_plan
/task
/routine_day
/user
Esta rota e responsavel por realizar as operacoes em relacao aos usuarios da aplicacao.
Operacoes
- GET
- PUT
- POST
- DELETE
/subject
Esta rota e responsavel por realizar as operacoes em relacao aos temas de cada semana da aplicacao.
Operacoes
- GET: retorna uma lista de temas
{
"id": "60a2e184d0bfeee92901d73b",
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"name": "Introdução"
}
/weekly_routine
Esta rota e responsavel por realizar as operacoes em relacao as rotinas semanais de cada familia na aplicacao.
Operacoes
- GET: retorna uma lista contendo as rotinas semanais
{
"id": "60a2e184d0bfeee92901d734",
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"year": "2021-05-17T21:35:00.459Z",
"routine_plan_id": "60a2e184d0bfeee92901d72d",
"week_number": 15,
"subject": "60a2e184d0bfeee92901d72e",
"routine_days": [
{
"id": "000000000000000000000000",
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"date": "0001-01-01T00:00:00Z",
"chores": null
},
{
"id": "000000000000000000000000",
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"date": "0001-01-01T00:00:00Z",
"chores": null
},
{
"id": "000000000000000000000000",
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"date": "0001-01-01T00:00:00Z",
"chores": null
},
{
"id": "000000000000000000000000",
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"date": "0001-01-01T00:00:00Z",
"chores": null
},
{
"id": "000000000000000000000000",
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"date": "0001-01-01T00:00:00Z",
"chores": null
}
]
}
- PUT
- POST
- DELETE
/routine_plan
Esta rota e responsavel por realizar as operacoes em relacao aos planos de rotinas criados pelas familias na aplicacao.
Operacoes
- GET
- PUT
- POST
- DELETE
/task
Esta rota e responsavel por realizar as operacoes em relacao as tarefas criadas pelas familias na aplicacao.
Operacoes
- GET
- PUT
- POST
- DELETE
/routine_day
Esta rota e responsavel por realizar as operacoes em relacao as rotinas criadas pelas familias na aplicacao.
Operacoes
- GET
- PUT
- POST
- DELETE
Arquitetura não-funcional
Diagrama de Componentes
Arquitetura de software
Arquitetura do sistema
O back-end da aplicação foi feito utilizando golang e mongodb. O ambiente proposto pelo time de arquitetura foi a utilização de containers docker em uma instância EC2 rodando ubuntu 18.04. Para rodar os dois containers foi utilizado docker-compose.
Diagrama do Sistema
Diagrama de Deploy
Para o deploy da aplicaçāo é necessário realizar um acesso remoto ssh na instância EC2 que se encontra na AWS. Depois de realizado o acesso, é preciso parar todos os containers do Docker, entrar na pastas /git/notar-e-anotar-back-end, /git/notar-e-anotar-database e realizar um git pull. Depois basta utilizar o comando docker-compose up na pasta notar-e-anotar-back-end que o docker subirá os dois containers da aplicação.
O deploy do backend e do banco de dados é feito de forma manual.
Acessamos a instância na AWS onde atualizamos o repositórios tanto do banco de dados quanto do backend.
Utilizando os arquivos Dockerfile presentes em cada repositório, rodamos o docker-compose.yaml que fará o deploy de ambos sistemas baseando-se nas configurações dos Dockerfiles.
Feito o deploy do docker-compose, o backend estará disponível no IP estático configurado para a instância da AWS.