Skip to content

Commit

Permalink
Part 2 of a brief project documentation (#16)
Browse files Browse the repository at this point in the history
1. **8480a40** Added documentation provided by `professor Filipe Tório`
in the course materials and explored additional topics in README
    New files:
    - "docs/Concep\303\247\303\243oMyFinanceWeb.pdf"
    - docs/Exemplo_Tabela_Plano_Contas.png
    - docs/Exemplo_Tabela_Transacao.png
    - docs/MyFinanceWeb-ModelagemArquitetural.png

1. **6df82ec** Added a numbering system for sections and instructions to
feed database with sample data

1. **2eb4146** Inserted section about execution

1. **abf554e** Inclusion of screen prototypes as visual examples of what
is expected to see
    New files:
    - docs/Plano de Contas.png
    - "docs/Transa\303\247\303\265es.png"

1. **7e2d4d5** Fixed line breaks around pictures

1. **d34325e** Removed IIS profiles from `launchSettings.json`

1. **b4234a9** Added `launch.json` to enable easy debugging through VS
Code
    New file:
    - .vscode/launch.json

1. **0c217eb** Added pre-defined tasks to the file `tasks.json` to
automate a bit building, running and watching myfinance-web project
    New file:
    - .vscode/tasks.json

1. **7497133** Recreated file `launch.json` with functional debugging
configuration and deleted file `tasks.json` - not required at this
moment
    Deleted file:
      - .vscode/tasks.json

2. **1b584c0** Added instructions to run and debug using VS Code - this
is a bare minimal configuration
    New files:
    - docs/Exemplo-VSCode-debugging.png
    - docs/dotnet_run_exemplo.png
  • Loading branch information
disouzam authored Dec 20, 2024
2 parents 80ee5dc + 1b584c0 commit 89bf6d0
Show file tree
Hide file tree
Showing 11 changed files with 83 additions and 20 deletions.
14 changes: 14 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug myfinance-web",
"type": "dotnet",
"request": "launch",
"projectPath": "${workspaceFolder}\\myfinance-web.csproj",
}
]
}
17 changes: 1 addition & 16 deletions Properties/launchSettings.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:26720",
"sslPort": 44305
}
},
"profiles": {
"http": {
"commandName": "Project",
Expand All @@ -26,13 +18,6 @@
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
}
72 changes: 68 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,36 @@
# Sobre esse repositório
# 1 Sobre esse repositório

Repositório com o conteúdo do trabalho prático da disciplina **Práticas de Implementação e Evolução de Software** da Pós graduação em Engenharia de Software - Oferta 7 - Turma 1 - do Instituto de Educação Continuada da PUC Minas

# Sobre o projeto
# 2 Sobre o projeto

Esse projeto didático teve o intuito de criar uma pequena aplicação financeira para uso pessoal. A aplicação foi criada em ASP.NET MVC (Model-View-Controller) com Razor pages e persistência de dados em Microsoft SQL Server 2022, Developer Edition. O mapeamento dos dados foi feito usando Entity Framework Core 9.

## Como executar a aplicação em ambiente local
A proposta do projeto está disponível no arquivo [ConcepçãoMyFinanceWeb.pdf](./docs/ConcepçãoMyFinanceWeb.pdf)

### Pré-requisitos
## 2.1 Modelo arquitetural resumido

O modelo arquitetural resumido é apresentado na imagem abaixo e a implementação contida nesse projeto satisfaz parcialmente esse desenho. Algumas mudanças são a atualização da versão do SDK do .NET e uma simplificação com respeito às camadas do projeto. O projeto presente contém todas as camadas em um único arquivo .csproj por questões de tempo reduzido para uma implementação mais detalhada.

![Modelagem Arquitetural por Filipe Tório](./docs/MyFinanceWeb-ModelagemArquitetural.png)

*Figura 1: Modelagem Arquitetural elaborada pelo Professor Filipe Tório*

## 2.2 Protótipo de telas

Dois protótipos simplificados da tela para exibição, edição, inserção e edição das transações e dos planos de contas são apresentados abaixo. Como são protótipos de baixa fidelidade, as telas criadas no projeto não correspondem detalhadamente à essas representações.

![Exemplo de tela para o Plano de Contas](./docs/Plano%20de%20Contas.png)

*Figura 2: Exemplo de tela para o Plano de Contas elaborada pelo Professor Filipe Tório*<br/><br/>

![Exemplo de tela para as Transações](./docs/Transações.png)

*Figura 3: Exemplo de tela para as Transações elaborada pelo Professor Filipe Tório*

## 2.3 Como executar a aplicação em ambiente local

### 2.3.1 Pré-requisitos
Para executar essa aplicação são necessários os seguintes requisitos:
- Ter o SDK do .NET instalado em versões iguais ou superiores ao **.NET 8**
- Para essa versão, consulte o link [Download .NET 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0));
Expand All @@ -28,3 +50,45 @@ git clone https://github.com/dickson-souza-projects/myfinance-web-dotnet.git
cd myfinance-web-dotnet
```

### 2.3.2 Criando o banco de dados

A criação do banco de dados é feita através do script [DB-Creation-And-Configuration.sql](./Scripts/DB-Creation-and-Configuration.sql): por meio dele é criado o banco de dados **MyFinance** contendo duas tabelas: **PlanoConta** e **Transacao**.

A tabela **PlanoConta** descreve os tipos de transação existente, tais como despesas com combustível, água, luz e recebíveis como salários, aluguéis e dividendos.

![Exemplo de Tabela de Plano de Contas](./docs/Exemplo_Tabela_Plano_Contas.png)

*Figura 4: Exemplo de Tabela de Plano de Contas (extraído do documento [ConcepçãoMyFinanceWeb.pdf](./docs/ConcepçãoMyFinanceWeb.pdf), elaborado pelo professor Filipe Tório)*

Já a tabela **Transacao** contém registros de transações individuais, categorizadas pelo **PlanoConta** correspondente.

![Exemplo de Tabela de Transações](./docs/Exemplo_Tabela_Transacao.png)

*Figura 5: Exemplo de Tabela de Transações (extraído do documento [ConcepçãoMyFinanceWeb.pdf](./docs/ConcepçãoMyFinanceWeb.pdf), elaborado pelo professor Filipe Tório)*

#### 2.3.2.1 Alimentação do banco de dados

Para facilitar o onboarding no projeto, um pequeno script foi criado para inserir alguns dados nas duas tabelas. Esse script pode ser encontrado no arquivo [Feeding-Database.sql](./Scripts/Feeding-Database.sql). E um outro script está disponível com algumas consultas simples no arquivo [Queries.sql](./Scripts/Queries.sql).

### 2.3.3 Execução

Para executar o projeto sem depuração, abra a solução [myfinance-web.sln](myfinance-web.sln) no Visual Studio Community 2022 e pressione `CTRL + F5`. Já para executar usando os recursos embutidos de depuração no Visual Studio Community 2022, pressione apenas `F5` - lembre-se de definir alguns pontos de interrupção para monitorar seções específicas do código.

Caso você use o Visual Studio Code e prefira uma interface de linha de comando, a execução do projeto sem depuração necessita do seguinte comando na raiz do repositório:
```bash
dotnet run
```

Para interromper a execução, basta pressionar `CTRL + C` no terminal. A figura abaixo mostra um exemplo da saída exibida na tela ao final da compilação e dos avisos emitidos.

![Exemplo de execução do comando dotnet run](./docs/dotnet_run_exemplo.png)

*Figura 6: Exemplo de execução do comando dotnet run*

Já para depurar o código, basta pressionar `F5` (certifique-se antes que a configuração `Debug myfinance-web` está selecionada no painel de Run and Debug do VS Code). Lembre-se ainda de definir alguns pontos de interrupção para inspeção do código.

Um exemplo de depuração no VS Code é mostrado na Figura 7, abaixo:

![Exemplo de depuração no VS Code](./docs/Exemplo-VSCode-debugging.png)

*Figura 7: Exemplo de depuração no VS Code*
Binary file added docs/ConcepçãoMyFinanceWeb.pdf
Binary file not shown.
Binary file added docs/Exemplo-VSCode-debugging.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Exemplo_Tabela_Plano_Contas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Exemplo_Tabela_Transacao.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/MyFinanceWeb-ModelagemArquitetural.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Plano de Contas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Transações.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/dotnet_run_exemplo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 89bf6d0

Please sign in to comment.