training-center / study-groups

Um local para treinar suas habilidades com outros desenvolvedores da comunidade.
https://trainingcenter.io/study-groups/
MIT License
312 stars 21 forks source link

Projeto - Ferramenta Web para pequenos empreendedores #11

Closed fabricio1soares closed 7 years ago

fabricio1soares commented 8 years ago

Olá! Há algum tempo atrás tive uma ideia de criar um aplicativo web que permitisse prestadores de serviço ou pequenos empresários ter um controle maior de sua vida profissional. Um pequeno aplicativo que ajudasse a gerenciar contas, compromissos e atendimentos, entre outras coisas. Que seja acessível do celular ou computador. Comecei a criar um layout para o mesmo, mas a falta de tempo e provas da faculdade acabei deixando de lado, vi neste local uma chance de tentar desenvolver esta solução com ajuda de outras pessoas interessadas, anexei duas imagens que já havia feito sobre o projeto e também possuo um VPS com configurações razoáveis caso esta aplicação saia do papel podemos coloca-la on-line.

Inicialmente pensei em desenvolver o Back-End com PHP e MySql e o Front-End com Bootstrap e JavaScript, mas estou aberto a sugestões.

Caso hajam interessados estou a disposição para qualquer dúvida, abraços a todos!

workflow-inicio workflow-operacional workflow-adm

[EDIT 26/03/2016] - Como pontapé inicial detalharei minhas ideias e funcionalidades aceitando sugestões.

Tela inicial (Não Autenticado) - Login, Cadastro, Esqueci minha senha. Tela inicial (Autenticado) - Principais funcionalidades do programa e um campo para permitir busca por clientes.

Administração - Gerenciamento de usuários: Adicionar Usuário, Remover Usuário, Alterar dados do usuário. A ideia é de que o dono da empresa ou prestador de serviços possa adicionar outros usuários como gestores da mesma empresa, esses outros usuários também podem marcar compromissos, cadastrar gastos, etc. quando um gestor cadastrar um novo usuário em sua base ele deve selecionar o que este novo usuário pode ver, adicionar, alterar e excluir.

Administração - Dados Cadastrais: Dados da empresa ou do prestador de serviços (nome, telefone, endereço, upload de logomarca, etc).

Financeiro - Realizar lançamento: Pode ser um crédito (recebeu de cliente) ou um pagamento (pagou uma conta) com a possibilidade de dizer se haverá repetição deste lançamento (repetir o lançamento todo dia 5 por exemplo), no caso de repetição de lançamento, na data programada o sistema deve perguntar ao gestor se o lançamento foi efetuado para confirmar se o cliente honrou seu pagamento ou se uma conta foi devidamente paga. Financeiro - Categorias: Cadastro de categorias de lançamentos financeiros (transporte, alimentação, prestação de serviços, etc). Financeiro - Relatórios: Relatórios financeiros por período, categoria, colaborador, etc.

Comercial - Cadastro de cliente. Comercial - Relacionamento: Agendar visitas ou contato telefônico, inserir briefings e conclusões da visita, etc. Comercial - Elaboração de Orçamento: A parte comercial deverá seguir um fluxo: Cadastro do cliente -> Relacionamento com o cliente -> Elaboração de orçamento (que pode virar um ativo Operacional ou não).

Operacional - Incluir operação: Fechado um orçamento, é cadastrada as etapas que devem ser efetuadas para o prestador de serviços entregar o produto. Operacional - Medição de operação: Deve ser feito um follow up percentual do quanto já foi realizado em cada etapa. Operacional - Comissionamento: Validação e observações das etapas. Operacional - Relatórios de serviços Gerais e Individuais.

Memorandos - Avisos que podem ou não aparecer para todos usuários da empresa.

Exercicio de uso - Tudo parece muito bom, vamos testar a aplicabilidade? Stephen Hawking é um Web Designer, encontra na internet o Work Flow, a aplicação lhe parece interessante, ele apresenta para seu sócio Isaac Newton que também tem boas impressões e juntos decidem começar a utilização.

Stephen se cadastra no Work Flow e cria uma empresa no sistema, Isaac também se cadastra e é adicionado como membro da empresa por Stephen com todos privilégios, afinal são sócios, após o cadastro Stephen personaliza a conta com seus dados de contato e a logomarca que utiliza, cadastra categorias de gastos que tem habitualmente (Transporte, Alimentação, Energia e Internet) e também os ganhos (revenda de hospedagem, desenvolvimento de logos, desenvolvimento de sites). Isaac recebe uma ligação de um cliente, mas Stephen está ocupado e não podem conversar no momento, Isaac então cadastra este cliente no Work Flow e agenda um contato telefônico para o dia seguinte as 10:00 da manhã, no dia seguinte Stephen recebe uma notificação para entrar em contato com o cliente e liga para o mesmo que então combinam um orçamento para desenvolver um "site simples", agora Stephen cadastra este orçamento no Work Flow, aguardando o retorno do cliente para fechar o negócio. Devido desespero do cliente, no mesmo dia ele retorna para fechar negócio, deposita metade do dinheiro na conta deles e solicita desenvolvimento imediato, realizado o lançamento do pagamento e cadastrada as etapas que envolvem o desenvolvimento de um site (Layout, Conteúdo, Codificação e Validação) na área operacional do Work Flow, agora Isaac e Stephen tem um follow up sobre o andamento das responsabilidades individuais, já que sempre que podem atualizam o andamento da etapa no menu medição da operação. Terminado o desenvolvimento do site é realizado um comissionamento junto ao cliente, todos se reúnem e com base nas etapas do sistema dialogam se estão de acordo (Layout, Conteúdo e Codificação) e confirmam a finalização da operação.

Bom, este seria um fluxo normal de uso, o que acham? Abraços!

[EDIT 30/03/2016] - Devido interesse manifestado pelo pessoal, criei um repositório no GitHub com o (pouco) material que já havia desenvolvido. https://github.com/fabricio1soares/WorkFlow

alannaidon commented 8 years ago

Eu topo ajudar. Basta acharmos tempo para conciliar com a minha faculdade também hehe ;P

csorlandi commented 8 years ago

Eu também topo ajudar, acho que isso pode me ajudar muito no desenvolvimento pessoal :D

fabricio1soares commented 8 years ago

Bacana, vou começar escrever a respeito do software e banco de dados.

fabricio1soares commented 8 years ago

Acrescentei algumas das funcionalidades no primeiro post, o que acham?

csorlandi commented 8 years ago

Acho bem legal se puder compartilhar conosco. Mas o legal mesmo seria se a gente definisse todas as funcionalidades a serem implementadas e dividirmos para todos fazerem algo.

WendellAdriel commented 8 years ago

Gostei da ideia!!!! :wink: Contem comigo, posso ajudar na organização, implementação, BD. Atuo como Freelancer e Consultor em projetos PHP e no que der podem contar comigo!!! :wink:

brunoravanhani commented 8 years ago

Eu gostei da ideia, gostaria de ajudar também. Sou Front, e manjo de js e Bootstrap.

metractive commented 8 years ago

Boa tarde @fabricio1soares tudo bem? Fui convidado por um rapaz para participar e gostaria de participar para aprender e ensinar no que eu for capaz de ensinar. Gostaria de participar do seu projeto, também estou com a faculdade, mas creio que podemos criar algumas metas para o desenvolvimento e por fim partir para um repositório. Umas perguntas que eu tenho são as seguintes:

Fico no aguardo das próximas interações!

fabricio1soares commented 8 years ago

Boa noite, nunca utilizei nenhuma Framework, mas não descarto a utilização pois acredito que o aprendizado deve ficar em primeiro lugar. Quando pensei na aplicação também me ocorreu a ideia de estender para um aplicativo por meio do PhoneGap. Estou muito contente por haver interessados, vou fazer upload do código dessas telas básicas que criei e ver se encontro o banco de dados que já havia feito, pois realmente já faz um tempo e deve estar em alguma das minhas pastas de backup. Abraços a todos!

metractive commented 8 years ago

Perfeito @fabricio1soares, tenho experiência com CakePHP, mas não tenho problemas se a grande maioria preferir outro framework, posso me adaptar sem problemas, conhecimento nunca é demais como você mesmo disse. Um abraço!

fabricio1soares commented 8 years ago

Criei um repositório, o banco de dados não esta completo pelo que olhei, tem muitas coisas para colocar e arrumar, mas é um começo, como @SoullPower comentou podemos dividir as tarefas e definir o ponto inicial, é uma ótima ideia. https://github.com/fabricio1soares/WorkFlow

WendellAdriel commented 8 years ago

Eu gosto muito do Laravel e até estou trabalhando como consultor em um projeto que usa ele. Se quiserem utilizar ele. Se vocês quiserem utilizar uma metodologia como SCRUM para controlar eu posso organizar em uma ferramenta que uso em meus projetos pessoais e Freelancer (https://taiga.io)

fabricio1soares commented 8 years ago

Muito bonito esse taiga, parece realmente poderoso, vou estuda-lo e também o SCRUM, já existe o Taiga em português? Acho que vou instala-lo em meu VPS.

metractive commented 8 years ago

Que irado esse taiga @WendellAdriel! Eu nunca utilizei a metodologia SCRUM, é uma boa para aprendermos. Você tem algum conteúdo bom sobre a metodologia? Já sobre o Laravel, já utilizei ele para a criação de uma API junto com o Lumen, que creio que seja um framework dele: https://lumen.laravel.com/

WendellAdriel commented 8 years ago

@fabricio1soares ainda não tem em português, não precisa instalar, você pode acessar todas funcionalidades direto do site deles, utilizo ele para gerenciar projetos e posso dizer que é sensacional!!!! :wink:

@MetalWingsWeb cara dá pra aprender muito apenas pesquisando pela net. Vou deixar link para um site com ótimos recursos free e o link de dois livros da Casa do Código sobre Scrum que são muito bons também:

http://www.scrumguides.org/ https://www.casadocodigo.com.br/products/livro-scrum-360 https://www.casadocodigo.com.br/products/livro-scrum

fabricio1soares commented 8 years ago

Então @WendellAdriel vi esta ressalva no site: (starting May 1, 2016 - until then enjoy Taiga.io for free), a partir de 1 de Maio apenas projetos públicos serão gratuitos no Taiga pelo que entendi.

metractive commented 8 years ago

@fabricio1soares não vejo problemas nos códigos que postou, a única coisa é que você vai adotar a arquitetura MVC? Poderíamos transformar essas coisas em MVC, assim conseguimos separar as views e tudo mais. Vou dar um fork no seu projeto do Git. Ao invés de termos o trabalho de transformar a aplicação na arquitetura poderíamos adaptar as coisas para algum dos frameworks. Creio que o Laravel seja a melhor escolha, certo?

fabricio1soares commented 8 years ago

Acredito que MVC é o melhor caminho para um projeto colaborativo, não conheço a fundo mas já entendo seus conceitos.

WendellAdriel commented 8 years ago

@fabricio1soares isso mesmo, é aquelas condições lá!!!

metractive commented 8 years ago

@WendellAdriel você já tem algum modelo do Laravel para adaptarmos? Ou criamos um do zero para todos aprenderem?

WendellAdriel commented 8 years ago

@MetalWingsWeb cara quando vc cria um projeto já vem meio que a estrutura pronta. Gosto apenas de adicionar uma camada de Services para não deixar tudo nos Controllers.

metractive commented 8 years ago

Beleza @WendellAdriel, vou finalizar algumas coisas aqui de um projeto e já inicio e adapto essas coisas se for tudo bem para vocês.

brunoravanhani commented 8 years ago

Caras, posso ajudar no visual e trabalho com cordova hoje então posso dar uma força também

brunoravanhani commented 8 years ago

Só não entendo nada de PHP rsrsrs, mas no que puder to ai

metractive commented 8 years ago

Pessoal, tive pepinos para resolver aqui e ainda não consegui finalizar as coisas para mandar um PR para vocês. Hoje a noite pós faculdade devo finalizar a implementação.

fabricio1soares commented 8 years ago

Olá, adicionei todos como colaboradores do repositório, @brunoravanhani tem muita coisa que pode ajudar sim! Esse layout que fiz foi bem básico usando o bootstrap, sinta-se a vontade para altera-lo e melhora-lo, inclusive criar os formulários. A parte de JavaScript terá muitas coisas para fazer também. O Cordova é muito interessante também, podemos criar já na implementação do projeto um API e iniciar um projeto Mobile como já citado pelo @MetalWingsWeb. Abraços!

WendellAdriel commented 8 years ago

Se for fazer como API tem que reformular a estrutura e arquitetura do projeto. Aí recomendo usar um Framework para fazer a API.

metractive commented 8 years ago

@WendellAdriel como vamos utilizar o Laravel. O que acha de utilizarmos o Lumen apenas para a API?

WendellAdriel commented 8 years ago

@MetalWingsWeb pode ser também, tanto faz o Laravel ou Lumen!!!! :wink:

metractive commented 8 years ago

Pessoal, acabei de mandar um push para um branch diferente para que deem uma olhada antes de alterarmos o branch master. Se puderem: https://github.com/MetalWingsWeb/WorkFlow/tree/laravel

Estou com algumas dúvidas @WendellAdriel, creio que você possa nos ajudar a entender. Criei um novo projeto através do composer, configurei alguns routes básicos, transformei algumas das views que existem no "master", mas não finalizei tudo. Utilizei a arquitetura para o layout chamada blade que o Laravel oferece.

Gostaria de saber se estes passos foram os corretos? E as dúvidas são:

Adicionei o arquivo SQL dentro de resources/sql, devemos tomar cuidado ao subir estes arquivos para produção, peço a ajuda de vocês nesse caso, por que não tenho ideia de como fazer essa restrição e também nem decidimos muita coisa.

Criei os arquivos com o Laravel para tentar adiantar a parte da arquitetura da aplicação, mas creio que devemos nos organizar antes de começar a botar a mão na massa definitivamente. Definir bem definido as etapas do projeto e também remodelar o banco de dados de acordo. Vamos caminhando!

WendellAdriel commented 8 years ago

@MetalWingsWeb, essa maneira de utilizar para criar links não está correta. O Laravel a partir da versão 5 separou em um pacote um utilitário com alguns recursos de formulário e html.

Dê uma olhada em: https://laravelcollective.com/docs/5.2/html

Não precisa utilizar o .htaccess não, na verdade tem de se criar um Virtual Host apontando direto para a pasta public. Se tiver dúvidas dê uma olhada nesses links:

https://www.digitalocean.com/community/tutorials/como-configurar-apache-virtual-hosts-no-ubuntu-14-04-lts-pt http://laravel-recipes.com/recipes/25/creating-an-apache-virtualhost

Sobre o banco de dados, com o Laravel não se utiliza arquivos .sql, devemos utilizar as migrations que é um dos recursos que acho mais interessante do Laravel. Dúvidas podem olhar aqui:

https://laravel.com/docs/5.2/migrations

metractive commented 8 years ago

@WendellAdriel show! Vou dar uma olhada em todos os links que me enviou, eu vi esse Database Migrations ontem e não havia entendido ele direito, deve ter sido por causa da hora :smile:

Se eu tiver alguma outra dúvida eu te digo. Valeu mesmo. @fabricio1soares Quando você tiver um tempo e o restante do grupo tiver um tempo, vamos organizar tudo com calma?

WendellAdriel commented 8 years ago

@MetalWingsWeb o Laravel é lindo cara...muito bom mesmo...e como disse o que precisar estou aí

fabricio1soares commented 8 years ago

Claro, final de semana vou estudar o Laravel para poder desenvolver em conjunto. @MetalWingsWeb Posso criar uma documentação para organizar aqui, só mandar suas ideias, nem sempre estou podendo produzir, mas no geral estou online 24h. Abraços!

metractive commented 8 years ago

@fabricio1soares que tipo de documentação você queria criar? Eu até pensei no próprio README da branch do Laravel subir onde estava cada elemento que eu adaptei. Exemplo, as views ficaram em resources/views/pages. Mas acho que não tem tanta necessidade, já que esse é o desenvolvimento de uma ideia, mas pensei em tentar criar algo básico mesmo, mesmo que ele se expanda para o grupo de estudos de Laravel. O que acha @WendellAdriel?

WendellAdriel commented 8 years ago

Depende que tipo de documentação vocês estão falando.

Se for de código, é bom sempre comentar pra documentar e arrumar em arquivos .md como o README caso necessário.

Se for de funcionalidades pesquisem e leiam sobre User Histories do SCRUM

metractive commented 8 years ago

Preciso estudar essa parada de SCRUM! :sweat_smile:

fabricio1soares commented 8 years ago

Somos 2 @MetalWingsWeb, fazendo uma pesquisa rápida achei uma página interessante: http://blog.myscrumhalf.com/2011/10/user-stories-o-que-sao-como-usar/

metractive commented 8 years ago

@WendellAdriel vi que você é certificado em relação ao Scrum, você pode nos passar o link onde podemos realizar essa certificação posteriormente? Creio que lá deve ter o conteúdo que podemos nos iniciar basicamente, certo? Procurei aqui, mas parecem existir vários tipos e fiquei um pouco confuso.

@fabricio1soares vou dar uma olhada, valeu mesmo!

WendellAdriel commented 8 years ago

Tá na mão: http://www.scrumstudy.com/Scrum-Fundamentals-Certified.asp

metractive commented 8 years ago

Não sabia que ele era gratuito. Podemos repostar no grupo de estudos de SCRUM, o que acha?

WendellAdriel commented 8 years ago

Essa primeira é sim. Podemos sim, mas espera o grupo fechar!!!!!

brunoravanhani commented 8 years ago

Galera, alguém mais vai mexer no Front ou tá mexendo?

Outra coisa, vamos ter um slack, alguma coisa, para facilitar a comunicação?

E @fabricio1soares cara eu queria que falasse mais sobre a ideia, o conceito do projeto, até pra mim começar a pensar em algumas telas e coisas relacionadas ao design

metractive commented 8 years ago

Vamos sim, mas o @WendellAdriel disse para esperarmos o grupo fechar, mas acho interessante existir já um slack para tudo ficar certinho. Sobre o front-end, estou atualmente só mexendo no back-end, preparando a arquitetura para começarmos o projeto definitivamente. Vamos caminhando.

fabricio1soares commented 8 years ago

Bom dia galera empenhada! Ontem conversei com a Larissa e ela ja vai abrir o canal no slack, o nome do projeto pode ser WorkFlow mesmo? Aberto a sugestões! Bruno, vou detalhar os cada tela aqui e mandamos ver.

metractive commented 8 years ago

Boa tarde pessoal. Tive alguns problemas pessoais e tive problemas para retornar ao desenvolvimento, essa semana estou me reorganizando e finalizo a adaptação do Laravel como havia prometido. @fabricio1soares conseguiu dar uma olhada nas coisas com calma? A respeito do nome, concordo em ser este nome mesmo!

metractive commented 8 years ago

O projeto deu uma parada? @fabricio1soares ainda está vivo?

WendellAdriel commented 8 years ago

Me mantenham atualizados sobre o projeto que mesmo sem tempo de codificar e talz posso ajudar na arquitetura, tirar dúvidas, ficar mais como consultor tanto do Back quanto do Front se quiserem e precisar!!! :wink:

fabricio1soares commented 8 years ago

Bom dia pessoal! Semana de provas, correria total, vamos em frente! quem mais ainda está acompanhando?

metractive commented 8 years ago

Estou acompanhando, também estou em semana de provas, a última é amanhã. Vou ver se hoje consigo mexer um pouco mais no Laravel, para terminar a organização e ai aguardamos todos ficarem disponíveis.