Skip to content
Jonathan Lopes edited this page Dec 15, 2017 · 201 revisions

logo

SysGAP

Sistema gerenciador de agências, produtoras e freelancers

Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas
Discente: Jonathan Lopes dos Santos
E-mail: jthan.lopes@gmail.com
Orientador: Prof. Me. Ângelo Gonçalves da Luz

Overleaf do projeto


1. Introdução

1.1 Motivação / Justificativa

Com a atual expansão do mercado de TI e o lançamento de novas tecnologias para os mais variados sistemas, algumas empresas de grande porte acabam terceirizando alguns serviços para empresas menores especialistas nessas tecnologias ou para freelancers. Após extensa pesquisa de mercado, foram encontrados diversos sistemas de cadastro e busca de freelancers, porém não existem sistemas que cadastrem e gerenciem agências e produtoras de conteúdo especializado, o que torna esse sistema uma excelente oportunidade de mercado. Outra motivação para a criação desse sistema é o mercado de freelancers, que vem crescendo gradativamente no Brasil.

1.2 Objetivo Geral

Implementar uma aplicação web para cadastro e gerenciamento de agências, produtoras, freelancers e jobs.

1.3 Objetivos Específicos

Para alcançar o objetivo geral do trabalho, os seguintes objetivos específicos foram levantados:

  • Pesquisar sistemas semelhantes;
  • Elaborar o cronograma da aplicação;
  • Pesquisar e definir tecnologias que serão utilizadas;
  • Desenvolver requisitos funcionais e não funcionais;
  • Desenvolver diagramas e wireframes da aplicação;
  • Desenvolver o relatório da aplicação.
  • Implementar o CRUD (create, read, _update _e delete) do sistema;
  • Implementar todas as funcionalidades da aplicação.
  • Criar e realizar rotina de testes.
  • Manter a wiki atualizada.
  • Desenvolver o artigo.

2. Referencial Teórico

O principal diferencial do projeto é o foco que será dado às agências e produtoras, para alguns a principal diferença entre agência e produtora está no fato de fazer ou não mídia (agência). Ou que agência é aquela que pensa fora da caixa, buscando formas inovadoras de alcançar a atenção dos consumidores finais. Segundo Fabiano D'Agostinho (2012), a grande diferença entre agência e produtora está em dizer quem domina a interlocução com o cliente e, mais ainda, quem domina o conhecimento sobre o negócio do cliente/anunciante. Esta é uma tarefa das agências, que também podem, e deveriam, atuar como um hub integrador de todas as produtoras, garantindo consistência e coerência nas entregas. Segundo o texto de Marina Gazzoni (2016), as produtoras estão se tornando mais ativas no mercado, cerca de 70% do faturamento das produtoras ainda são provenientes de agências, mas algumas já atendem clientes diretamente, segundo Rene Sampaio (2016), as produtoras não substituem o papel das agências, mas podem ser mais atuantes do ponto de vista criativo e multiplicar as ideias.

Sobre o mercado de freelancers, no Brasil ele tem crescido num ritmo muito acelerado. Segundo a Prolancer (2016), os profissionais liberais são os que melhor se adaptam a um modelo sem vínculos formais, e onde a qualidade do trabalho, o cumprimento de prazos e a aposta constante na aquisição de novas competências são as principais ferramentas para se manter no mercado. Um levantamento realizado pelo Freelancer.com (2016), aponta que o Brasil já é o 6º país com o maior número de profissionais freelancer dentro da sua base de usuários. São mais de 640 mil profissionais brasileiros cadastrados e trabalhando para empresas em países como Estado Unidos, Reino Unido, Austrália e companhias locais. O que justifica a necessidade de o País se adaptar aos novos tempos e modelo de trabalhos.

As Figuras 01 e 02 apresentam algumas estatísticas levantadas pelo site aparelhoeletrico.com.

Na Figura 01 podemos ver que a predominância do sexo masculino na profissão, 67,6% são casados e 48,5% estão na faixa etária de 25 a 34 anos. logo
Figura 01: Perfil do freelancer (Fonte: http://aparelhoeletrico.com/geral/infografico-pesquisa-sobre-o-perfil-do-freelancer-no-brasil-2017/)

A Figura 02 mostra a porcentagem desses profissionais por estado, sendo a maior concentração no estado de São Paulo, seguido do Rio Grande do Sul e Rio de Janeiro, estando o maior público concentrado nas capitais dos estados. logo
Figura 02: Porcentagem de freelancers por estado (Fonte: http://aparelhoeletrico.com/geral/infografico-pesquisa-sobre-o-perfil-do-freelancer-no-brasil-2017/)

2.1 Sistemas similares

Existem dezenas de sites para cadastro de freelancers. Serão apresentados dois dos sites mais populares, o Workana.com (Figura 03) que conta com cerca de meio milhão de profissionais independentes e o Freelancer.com (Figura 04) que possui cerca de 24 milhões de usuários cadastros no mundo e mais de 10 milhões de jobs postados.

O site Workana (Figura 03) possibilita procurar vagas ou criar projetos, na hora da criação do projeto ele pressupõe algum conhecimento do usuário, não havendo consultoria para clientes leigos. Existem muitos recursos que exigem pagamento para serem liberados, inclusive pagamento para destacar usuários. Existem filtros de pesquisa, mas eles poderiam ser mais detalhados. E no perfil do freelancer não aparecem muitas opções de cadastro. Como cliente, no perfil, não é possível identificar o tipo de empresa, nem possui um perfil detalhado de cliente. logo Figura 03: Workana (Link: https://www.workana.com/pt)

logo Figura 04: Freelancer (Link: https://www.freelancer.com/)

A aplicação SysGAP contará com filtros detalhados de pesquisa, sistema de avaliação diferenciado, perfil gerenciável de usuário. Possibilidade de criar e gerenciar grupos de freelancers e jobs. Rankings por pontuação. Geração de relatórios e gráficos, sistema para pagamentos dos jobs e troca de mensagens entre os usuários. Além de uma interface mais limpa e intuitiva.

3. Projeto de Sistema

3.1 Levantamento dos Requisitos

As técnicas usadas no levantamento de requisitos foram:

  • Brainstorming;
  • Análise de sistemas existentes.

3.2 Requisitos Funcionais

O projeto possui os seguintes requisitos funcionais:

  • [RF001] - CRUD de agências;
  • [RF002] - CRUD de produtoras;
  • [RF003] - CRUD de freelancers;
  • [RF004] - CRUD de administradores;
  • [RF005] - CRUD de notícias (eventos, palestras, cursos, certificações, marketing de agências ou produtoras);
  • [RF006] - Avaliação por categorias e com área descritiva;
  • [RF007] - Avaliação geral automática, média feita a partir de todas as avaliações do usuário;
  • [RF008] - Filtros de pesquisa, exemplos: categoria, subcategoria, estado, nota, cnpj, freelancer ou produtora, recomendações, tecnologia específica.
  • [RF009] - Cadastro de jobs;
  • [RF010] - Criação e gerenciamento de equipes de freelancers;
  • [RF011] - Board para gerenciar jobs;
  • [RF012] - Notificação de novos projetos no perfil;
  • [RF013] - Cadastro de portfólio;
  • [RF014] - Envio de mensagem para tirar dúvidas com o administrador;
  • [RF015] - Troca de mensagem em tempo real entre usuários (sistema para comentários nos jobs);
  • [RF016] - Sistema de pontuação para gerar os rankings;
  • [RF017] - Sistema para pagamento dos jobs (projetos futuros);
  • [RF018] - Sistema de relatórios;
  • [RF019] - Sistema de gráficos.

3.3 Requisitos Não Funcionais

O projeto possui os seguintes requisitos não funcionais:

  • [RNF001] - Login com redes sociais (projetos futuros);
  • [RNF002] - A avaliação simplificada será do tipo “estrela” (projetos futuros);
  • [RNF003] - O sistema web será desenvolvido com Laravel;
  • [RNF004] - O sistema deve classificar os jobs conforme a experiência da produtora ou freelancer;
  • [RNF005] - As páginas serão responsivas;
  • [RNF006] - Os formulários serão validados com HTML5 e Laravel;
  • [RNF007] - Criptografia com Bcrypt;
  • [RNF008] - Confirmação de cadastro via email;
  • [RNF009] - Recuperação de senha por email;
  • [RNF010] - Cada usuário terá sua própria página de perfil para gerenciar;
  • [RNF011] - Na home também serão mostrados as notícias cadastradas listadas por cidade;
  • [RNF012] - Utilizar API para pegar informações do endereço do usuário.

3.4 Tecnologias

A seguir serão apresentadas as tecnologias utilizadas neste projeto.

3.4.1 Controle de versão - Git: É um sistema de controle de versão distribuído gratuito e de código aberto, utilizado para gerenciar desde projetos pequenos a muito grandes, com velocidade e eficiência. Neste projeto esta sendo utilizado o SmartGit (Figura 05) que é uma ferramenta gráfica para controle de versão com o Git.

logo Figura 05: Tela do SmartGit

3.4.2 Banco de dados - MariaDB: Banco de dados criado a partir de um fork do MySQL, é considerado um dos bancos mais populares do mundo, ele foi criado para garantir que o código permanecesse aberto, assim que a Oracle comprou o MySQL. Algumas empresas que utilizam MariaDB: Wikipedia, WordPress e Google.

3.3.3 Cliente - VueJS: É uma biblioteca JavaScript para o desenvolvimento de componentes reativos para interfaces web modernas. Outras tecnologias no lado cliente que serão utilizadas, são: Bootstrap, HTML5, CSS3, Sass (pré-processdor CSS), JavaScript, Jquery, Gulp (automatizador de tarefas), Bower (gerenciador de componentes que contenham HTML, CSS, JavaScript, fontes ou arquivos de imagem). O template AdminLTE (https://adminlte.io/) será utilizado para o front do administrador. Para o front do cliente serão utilizados templates do w3.CSS (https://www.w3schools.com/w3css/default.asp).

3.3.4 Gerenciador de dependências - Composer: É uma ferramenta para gerenciamento de dependências para o PHP. O Composer por padrão não instala as dependências a nível global (mas pode ser instalado também), mas sim a nível de projeto. Como ele é possível procurar, instalar, atualizar e remover pacotes do seu projeto.

3.3.5 Servidor - Laravel 5.4: Framework PHP open-source utilizado para o desenvolvimento de sistemas web que utilizam o padrão MVC (model, view, controller). A Figura 06 mostra o crescente aumento de interesse pelo Laravel nos últimos doze meses.

logo Figura 06: Google Trends frameworks PHP (Link: https://trends.google.com.br/trends/explore?q=laravel,CodeIgniter,symfony,cakephp,Zend)

3.5 Funcionamento do sistema de avaliação

A aplicação terá um sistema de avaliação do tipo “estrela”, que contará com vários pontos de avaliação e uma área descritiva.

Avaliação feita pelas agências e produtoras: pontualidade, conhecimentos, trabalho em equipe, você recomendaria esse freela?

Avaliação feita pelos freelancers: Remuneração e benefícios, ambiente de trabalho, oportunidade de crescimento, você recomendaria essa agência ou produtora?

3.6 Organograma de ideias

Na Figura 07 é feita uma representação das principais ideias do projeto, através de um organograma de ideias. logo Figura 07: Organograma com as principais ideias do projeto

3.7 Diagramas

A seguir serão apresentados o diagrama E-R (Figura 08) e os diagramas de casos de uso (Figuras 09, 10 e 11) da aplicação.

3.7.1 Diagrama E-R da aplicação

No diagrama E-R (entidade-relacionamento) temos 3 tabelas de usuários, que são: administrador, freelancer e empresa. O usuário administrador faz o cadastro de notícias, conhecimentos e itens de avaliação. A tabela conhecimento também está ligada a empresa e freelancer, caso um desses possua um conhecimento que não esteja disponível, eles poderão cadastrar novos conhecimentos, mas esses conhecimentos só aparecerão para o usuário que cadastrou. A empresa cria um job que pode ter conhecimentos necessários ligados a ele, esse job pode ser atribuído a um ou muitos freelancers ou a um grupo deles. Além destas existem outras 3 tabelas principais: pagamento, mensagem e avaliação, que são responsáveis pela maior parte das funcionalidades do sistema e interação entre os usuários. logo Figura 08: Diagrama E-R da aplicação

3.7.2 Diagramas de casos de uso

A seguir serão apresentados os diagramas de casos de uso desta aplicação.

Na Figura 09 serão apresentados os casos de uso do usuário empresa (agências, produtoras ou outras empresas), o usuário empresa cria a conta e precisa confirmar o e-mail para logar, pode gerenciar o perfil, pesquisar por usuários, visualizar perfis, criar, editar e finalizar os jobs, fazendo o pagamento (precisa logar no PagSeguro) e avaliação dos usuários envolvidos. logo Figura 09: Casos de uso da empresa

Na Figura 10 são apresentados os casos de uso do usuário freelancer, o usuário freelancer também precisa confirmar o e-mail após o cadastro, pode gerenciar sua página de perfil, colocando conhecimentos, experiências e postando notícias e eventos, ao término de um job ele deve avaliar a agência ou produtora, e receber pelo job, também sendo necessário logar na conta do PagSeguro, além disso, ele pode criar e gerenciar grupos de freelancer para jobs maiores. logo Figura 10: Casos de uso do freelancer

Na Figura 11 são apresentados os casos de uso do usuário administrador. Existe um administrador principal para cadastrar outros administradores, os administradores podem fazer o cadastro de conhecimentos e de conteúdos, analisar denúncias de usuários, podendo responder ao usuários denunciante e/ou bloquear o usuário denunciado, podendo também gerar e visualizar gráficos e relatórios. logo Figura 11: Casos de uso do administrador

3.8 Telas do sistema

A seguir serão apresentadas algumas telas do sistema.

A Figura 12 é a tela principal do administrador, ela é carregada logo após o login. Possui o menu superior com opções de editar o perfil e fazer logout, e o menu lateral, com as opções de fazer os cadastros, ver registros de usuários, visualizar gráficos, visualizar e gerar relatórios, responder as mensagens dos usuários e ver a documentação da aplicação.

logo Figura 12: Dashboard do administrador

A Figura 13 é a listagem dos administradores, existe um botão superior para adicionar um novo administrador, no conteúdo central da página ficam os dados dos administradores, um campo de pesquisa de administradores (pesquisa feita pelo nome), ver lista dos inativos, também existe a opção de editar o perfil (somente para o administrador logado), para os outros administradores só é possível fazer a exclusão lógica.

logo Figura 13: Lista de administradores ativos

A Figura 14 mostra a listagem dos administradores inativos, nessa tela também é possível adicionar uma novo administrador, pode-se editar o perfil de um administrador inativo, e pode-se também ativar um usuário. E também existe um campo de pesquisa, que irá procurar pelo nome dos administradores inativos.

logo Figura 14: Lista de administradores inativos

A Figura 15 é o formulário de registro de novos administradores, destaque para a confirmação de senha e o campo de imagens, que exibe a imagem antes de fazer o submit. Após salvar ele direciona para a listagem de usuários ativos.

logo Figura 15: Registro de administradores

4. Considerações da banca

5. Cronograma

A seguir será apresentado o cronograma do projeto.


Atividades Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez
Elaborar ideias para o projeto V V V
Definir tecnologias que serão utilizadas V V V V
Estudar tecnologias que serão utilizadas V V V V V V V V V V
Estudar sistemas semelhantes V V V V
Construir diagrama E-R V V V
Implementar base de dados V V
Preparar a estrutura de desenvolvimento V V
Implementar CRUD de administrador V V V V
Implementar CRUD de freelancer V V V
Implementar CRUD de agência e produtora V V V V V
Fazer relatório V V
Implementar funcionalidades V V V V V
Fazer validações de formulários V V O
Confirmação de e-mail V V V
Recuperação de senha V V V
Página de perfil dos usuários V V
Sistema de avaliação V V
Envio de mensagens V V V
Fazer testes no sistema V
Fazer artigo V V V
Organizar wiki do projeto V V V V V V V V V V V

Legenda:

  • X : Em Espera
  • O : Em Andamento
  • V : Concluído

6. Conclusões

Ao longo do desenvolvimento dessa primeira etapa do projeto foi possível conhecer e compreender um pouco desse mercado de agências, produtoras e empresas de consultoria, ao conversar com pessoas da área pode-se perceber as vantagens e desvantagens desses sistemas, podendo então modelar o projeto para atender as necessidades dessas empresas e também dos freelancers, que são extremamente importantes nesse meio. Para o desenvolvimento do projeto foi escolhido o Laravel como tecnologia principal por ser atualmente o mais utilizado no mercado e também por todas as facilidades que ele cria ao se programar, apesar que o framework abstrai muito a programação, ele demanda muito estudo e empenho para não só criar um sistema, mas para criar o sistema da melhor forma possível. Os próximos passos são continuar estudando as tecnologias, implementando a aplicação, otimizando o código da melhor forma possível e incrementando a wiki conforme as necessidades que forem surgindo para o projeto.

7. Referências

Laravel documentation (2017). Disponível em: https://laravel.com/docs/5.4/installation. Acesso em 03 de março de 2017.

Laravel 5.4 (2017). Disponível em: https://laracasts.com/series/laravel-from-scratch-2017. Acesso em 06 de março de 2017.

Estudo aborda o mercado nacional do freelancer (2016). Disponível em: http://blog.prolancer.com.br/estudo-aborda-mercado-nacional-freelancer/. Acesso em 12 de junho de 2017.

Freelancer é tendência no mercado mundial (2017). Disponível em: https://corporate.canaltech.com.br/noticia/carreira/freelancer-e-tendencia-no-mercado-mundial-93832/. Acesso em 12 de junho de 2017.

Pesquisa sobre o freelancer brasileiro (2015). Disponível em: http://tutano.trampos.co/5822-freelancer-brasileiro-2015/. Acesso em 13 de junho de 2017.

Pesquisa sobre o perfil do freelancer no Brasil (2017). Disponível em: http://aparelhoeletrico.com/geral/infografico-pesquisa-sobre-o-perfil-do-freelancer-no-brasil-2017/. Acesso em 18 de junho de 2017.

Agência ou produtora? Há espaço para todos (2012). Disponível em: http://www.abradi.com.br/artigo-fabiano-dagostinho-agencia-ou-produtora-ha-espaco-para-todos/. Acesso em 02 de julho de 2017.

Marcas dispensam agências e vão direto a produtoras (2016). Disponível em: http://economia.estadao.com.br/noticias/geral,marcas-dispensam-agencias-e-vao-direto-a-produtoras,10000006692. Acesso em 02 de julho de 2017.

About MariaDB (2017). Disponível em: https://mariadb.org/about/. Acesso em 03 de julho de 2017.

Getting Started (2017). Disponível em: https://getcomposer.org/doc/00-intro.md. Acesso em 21 de agosto de 2017.