aplicação em consola
Budget: €8 – €30 EUR
Descrição do Sistema
O movimento FIRE (Financial Independence, Retire Early) é um movimento financeiro
acompanhado por um estilo de vida diferenciado, cujo objetivo é o de alcançar a independência
financeira e permitir a reforma antecipada.
Tal implica alguns compromissos no dia-a-dia referente à taxa de poupança, investimento,
frugalidade e minimalismo, entre outras áreas.
Cada indivíduo tem necessidades diferentes, e como tal, as suas despesas mensais podem variar
consideravelmente. Há quem consiga ter uma boa vida com 1000€ mensais, enquanto outros
necessitam de 5000€.
Pretende-se criar um programa em C# que permita ajudar a encontrar o ponto ideal para a
reforma FIRE. Para tal, é importante saber a estimativa de despesas mensais ao longo do ano e
fazer uma projeção para os próximos anos.
Considere os seguintes requisitos para desenvolver a app FIRE:
R01 Implementação de menus
Deverá implementar 2 menus distintos, um para o utilizador e outro para o administrador. Só
deve ser mostrado um menu de cada vez, dependendo do tipo de utilizador que está
autenticado;
Utilizador comum:
- Editar Utilizador
- Importar despesas
- Dashboard
Administrador:
- Definir diretoria base
- Importar Categorias
- Estatísticas de todos os utilizadores
R02 – Opção menu: Editar User
Sobre o investidor, deve saber-se:
- Nome
- Password
- Data de nascimento
- Montante total do património
- Montante médio mensal despesas
- Taxa de rendimento expectável (quanto é que o património atual pode gerar em rendimentos
passivos, incluindo investimentos como: ações, dividendos, juros, etc.
- Taxa de inflação (o custo de vida tende a aumentar e é importante refletir esse valor em
projeções futuras)
3 / 5
- Longevidade prevista em anos – Por omissão, considera-se 100 anos para que não se
experiencie a desagradável sensação de viver mais que as nossas poupanças.
A app pode ser usada por vários utilizadores, sem que haja partilha de dados entre si. Os
utilizadores são identificados pelo nome e password, que tem no máximo 8 caracteres, entre
letras e dígitos. Ao fazer login na aplicação, deverá ser possível fazer login com um utilizador
existente ou registar um novo.
Sempre que seja necessário alterar os dados do utilizador, deve fazer através de comandos CLI
(Command Line Interface). Eis alguns exemplos:
fire set-user --help
Mostra todas as opções do uso do comando set-user
fire set-user
--name Nome Investidor
--pwd password
--db data de nascimento usando o formato dd-mm-yyyy ou yyyy-mm-dd
--assets valor total património
--expenses média mensal de despesas
--yield taxa de retorno esperada [0, 1]
--inflation taxa de inflação [0,1]
--ttl longevidade prevista em anos
Cada opção do comando pode ser usada individualmente ou em conjunto. Por exemplo, se
quisermos alterar o valor do património para 100K e a taxa de inflação para 4%, o comando
seria: fire set-user –-assets 100000 –inflation 0.04
R03 – Opção menu: Importar as despesas
Pretende-se a importação de despesas do utilizador autenticado a partir de um ficheiro em
formato .csv com o seguinte layout:
data;categoria;subcategoria;beneficiario;descricao;valor
02-01-2024;Mobility;Parking;Brisa;
Nota: se a categoria/subcategoria não for encontrada, marcar como ‘Others’, devendo a
comparação ser case-insensitive.
O beneficiário e a descrição não não são obrigatórios, mas todos os demais campos são;
O ficheiro de importação é identificado pelo nome do utilizador autenticado no sistema;
P.S.) Poderá explorar importar as despesas com a package CsvHelper.
R04 – Opção menu: Dashboard
O Dashboard é onde o utilizador poderá visualizar toda a informação importante relativa à sua
independência financeira, podendo combinar os dados de despesas com os outros dados
configurados, apresentando também previsões. Eis alguns exemplos:
4 / 5
- Valor do património atual, despesas mensais, taxa de inflação, logevidade e taxa de
rendibilidade esperada;
- Se se reformar agora, quanto poderá receber mensalmente;
- Qual o rácio de independência financeira;
- Indicação se o utilizador se pode reformar neste momento;
- Outras informações importantes;
Na vista de dashboard, deverá ser possivel também correr os mesmos comandos para alterar os
dados do utilizador e assim obter imediatamente um dashboard atualizado de acordo com esses
mesmos dados.
Nota: Tendo tempo, crie um dashboard tão apelativo quanto possível (focando-se primeiro nos
requisitos essenciais)
R05 – Opção menu Admin: Definir diretoria base;
Aqui deve ser possível definir a categoria base onde todos os ficheiros deverão ser guardados:
Por exemplo C:\fire
R06 – Opção menu: Importar Categorias
Importação de categorias a partir do ficheiro anexo ‘expenses-categories.txt’. Estas categorias
só podem ser importadas pelo administrador e definem todas as categorias que podem ser
usadas por todos os utilizadores.
R07 – Opção menu Admin: Mostrar estatísticas dos utilizadores;
Para cada utilizador, listar o valor do património, qual o valor mensal que teriam disponível se se
reformassem agora e o rácio de liberdade financeira. (quanto precisam mês / quanto têm para
gastar)
O movimento FIRE (Financial Independence, Retire Early) é um movimento financeiro
acompanhado por um estilo de vida diferenciado, cujo objetivo é o de alcançar a independência
financeira e permitir a reforma antecipada.
Tal implica alguns compromissos no dia-a-dia referente à taxa de poupança, investimento,
frugalidade e minimalismo, entre outras áreas.
Cada indivíduo tem necessidades diferentes, e como tal, as suas despesas mensais podem variar
consideravelmente. Há quem consiga ter uma boa vida com 1000€ mensais, enquanto outros
necessitam de 5000€.
Pretende-se criar um programa em C# que permita ajudar a encontrar o ponto ideal para a
reforma FIRE. Para tal, é importante saber a estimativa de despesas mensais ao longo do ano e
fazer uma projeção para os próximos anos.
Considere os seguintes requisitos para desenvolver a app FIRE:
R01 Implementação de menus
Deverá implementar 2 menus distintos, um para o utilizador e outro para o administrador. Só
deve ser mostrado um menu de cada vez, dependendo do tipo de utilizador que está
autenticado;
Utilizador comum:
- Editar Utilizador
- Importar despesas
- Dashboard
Administrador:
- Definir diretoria base
- Importar Categorias
- Estatísticas de todos os utilizadores
R02 – Opção menu: Editar User
Sobre o investidor, deve saber-se:
- Nome
- Password
- Data de nascimento
- Montante total do património
- Montante médio mensal despesas
- Taxa de rendimento expectável (quanto é que o património atual pode gerar em rendimentos
passivos, incluindo investimentos como: ações, dividendos, juros, etc.
- Taxa de inflação (o custo de vida tende a aumentar e é importante refletir esse valor em
projeções futuras)
3 / 5
- Longevidade prevista em anos – Por omissão, considera-se 100 anos para que não se
experiencie a desagradável sensação de viver mais que as nossas poupanças.
A app pode ser usada por vários utilizadores, sem que haja partilha de dados entre si. Os
utilizadores são identificados pelo nome e password, que tem no máximo 8 caracteres, entre
letras e dígitos. Ao fazer login na aplicação, deverá ser possível fazer login com um utilizador
existente ou registar um novo.
Sempre que seja necessário alterar os dados do utilizador, deve fazer através de comandos CLI
(Command Line Interface). Eis alguns exemplos:
fire set-user --help
Mostra todas as opções do uso do comando set-user
fire set-user
--name Nome Investidor
--pwd password
--db data de nascimento usando o formato dd-mm-yyyy ou yyyy-mm-dd
--assets valor total património
--expenses média mensal de despesas
--yield taxa de retorno esperada [0, 1]
--inflation taxa de inflação [0,1]
--ttl longevidade prevista em anos
Cada opção do comando pode ser usada individualmente ou em conjunto. Por exemplo, se
quisermos alterar o valor do património para 100K e a taxa de inflação para 4%, o comando
seria: fire set-user –-assets 100000 –inflation 0.04
R03 – Opção menu: Importar as despesas
Pretende-se a importação de despesas do utilizador autenticado a partir de um ficheiro em
formato .csv com o seguinte layout:
data;categoria;subcategoria;beneficiario;descricao;valor
02-01-2024;Mobility;Parking;Brisa;
Nota: se a categoria/subcategoria não for encontrada, marcar como ‘Others’, devendo a
comparação ser case-insensitive.
O beneficiário e a descrição não não são obrigatórios, mas todos os demais campos são;
O ficheiro de importação é identificado pelo nome do utilizador autenticado no sistema;
P.S.) Poderá explorar importar as despesas com a package CsvHelper.
R04 – Opção menu: Dashboard
O Dashboard é onde o utilizador poderá visualizar toda a informação importante relativa à sua
independência financeira, podendo combinar os dados de despesas com os outros dados
configurados, apresentando também previsões. Eis alguns exemplos:
4 / 5
- Valor do património atual, despesas mensais, taxa de inflação, logevidade e taxa de
rendibilidade esperada;
- Se se reformar agora, quanto poderá receber mensalmente;
- Qual o rácio de independência financeira;
- Indicação se o utilizador se pode reformar neste momento;
- Outras informações importantes;
Na vista de dashboard, deverá ser possivel também correr os mesmos comandos para alterar os
dados do utilizador e assim obter imediatamente um dashboard atualizado de acordo com esses
mesmos dados.
Nota: Tendo tempo, crie um dashboard tão apelativo quanto possível (focando-se primeiro nos
requisitos essenciais)
R05 – Opção menu Admin: Definir diretoria base;
Aqui deve ser possível definir a categoria base onde todos os ficheiros deverão ser guardados:
Por exemplo C:\fire
R06 – Opção menu: Importar Categorias
Importação de categorias a partir do ficheiro anexo ‘expenses-categories.txt’. Estas categorias
só podem ser importadas pelo administrador e definem todas as categorias que podem ser
usadas por todos os utilizadores.
R07 – Opção menu Admin: Mostrar estatísticas dos utilizadores;
Para cada utilizador, listar o valor do património, qual o valor mensal que teriam disponível se se
reformassem agora e o rácio de liberdade financeira. (quanto precisam mês / quanto têm para
gastar)