Created
April 25, 2012 11:52
-
-
Save hlegius/2489166 to your computer and use it in GitHub Desktop.
Season - Projeto final
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Projeto final: Gerenciador financeiro. | |
O sistema web deverá contemplar as seguintes ideias: | |
- Cadastro de despesa | |
- Listagem de gastos/recebimentos com filtro por data. | |
- Cadastro de categorías de despesas | |
Bonus points (opcional): | |
- Cadastro de "budget" para uma categoria. | |
= Cadastro de despesa: | |
O usuário cadastrará uma nova transação classificando-a como "despesa" ou "recebimento". Selecionará uma categoria (exemplo: Carro - Gasolina) e a data em que efetuou a transação podendo ou não colocar observações adicionais. Valores negativos não podem ser aceitos. Somente maiores que R$ 0,00. | |
= Listagem de gastos/recebimentos com filtro por data | |
Tela padrão do sistema, deverá listar todas as transações cadastradas. Deverá colorir na cor vermelha os valores referentes a "despesa" e na cor verde os recebimentos. | |
No topo da listagem, precisa existir um formulário onde será possível filtrar a exibição das transações por data. Será fornecida a data de inicio e fim para realizar o filtro. | |
Nesta tela também será exibido o valor total consolidado (todos recebimentos do período menos todas despesas do período). | |
= Cadastro de categorías de despesas | |
Categorias são os marcadores padrão para as transações. "Carro - Gasolina" e "Comida - Doces" são categorias válidas. Uma transação terá uma e somente uma categoria sendo esta de preenchimento obrigatório para toda transação. | |
Bonus points: | |
= Cadastro de "budget" atrelado em uma categoria | |
Com isso, o sistema alertará sobre possíveis exageros dentro do orçamento. O usuário cria um "budget" para a categoria "Comida - Doces" no valor de R$ 100,00 (todos valores são por mês sempre). Caso no mês o valor exceda os R$ 100,00 um alerta na tela de Listagem de gastos/recebimentos deverá aparecer sempre até o final do mês corrente alertando o usuário sobre o exagero. | |
Hints e constraints: | |
- Todo o modelo deverá ser orientado a objetos | |
- Persistência pode ser: PostgreSQL ou MongoDB (http://www.mongodb.org e http://br.php.net/mongodb) | |
- PDO obrigatório em caso de PgSQL. | |
- Em ambos casos (PDO e Mongodb) pesquisar sobre o design pattern: DAO (Data Access Object) e o design pattern: Repository. Não poderá haver classes estáticas ou métodos perdidos para salvar os objetos no database. Leia sobre ambos patterns e monte uma camada de abstração que fará o meio de campo entre o mundo orientado a objetos e as linhas e colunas do database. | |
- Todas as telas do software podem utilizar o Bootstrap do Twitter. Ele provê CSS e Javascript para formulários, telas, menus… tudo fácil de implementar e com um visual bonito. Leia mais em http://twitter.github.com/bootstrap/ - a outra opção é você criar um HTML e CSS visualmente organizado para apresentar. HTML puro sem estilo não é válido. | |
- De preferência, hospede o código fonte do projeto no Github. (http://github.com). Crie sua conta grátis e leia tutoriais sobre como colocar seu projeto sincronizado com o Github. Se precisar de dicas de Git, poderei ajudar, mas lembre-se que na Internet há muito material sobre. http://progit.org | |
- De preferência, coloque o projeto (faça deploy) em algum servidor web para apresentação. Minhas sugestões são: Amazon WebServices (Amazon EC2 - http://aws.amazon.com) ou PHP Fog (https://phpfog.com). Se preferir seu servidor web shared padrão, ok também. | |
Datas: | |
- Dúvidas e aprendendo a pescar: por email, qualquer dia durante todo o feriado inclusive. | |
- Pré-apresentação para ajustes finais: quarta-feira, 02/05. | |
- Apresentação final: quinta-feira, 03/05. | |
- Apresentação após a data: opcional, por email com feedback da mesma forma. | |
Lembrem-se: para ser bom precisa estudar; para ser excelente, praticar. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment