Skip to content

Latest commit

 

History

History
293 lines (242 loc) · 14.7 KB

API_1.md

File metadata and controls

293 lines (242 loc) · 14.7 KB

API 1º Semestre - 02/2020

Resumo do Projeto 📋

O projeto consiste na criação de um site de comércio eletrônico (E-commerce) voltado para materiais didáticos. O objetivo principal foi facilitar o acesso e fornecer recursos de qualidade para professores e alunos, com o intuito de apoiar seus estudos e aprimorar o processo de aprendizagem. O site oferece uma ampla variedade de materiais didáticos, abrangendo diversas disciplinas e níveis educacionais. Isso inclui livros, apostilas, e-books, vídeos educativos, planos de aula, jogos educativos, entre outros recursos relevantes para auxiliar tanto os educadores quanto os estudantes. Uma das principais características do site foi a facilidade de navegação e busca, permitindo que os usuários encontrem rapidamente o conteúdo desejado. Além disso, fornecer recursos de filtragem e classificação, permitindo que os usuários refinem suas pesquisas com base em critérios específicos, como disciplina, nível de ensino, autor, editora, entre outros.

Tecnologias Adotadas 💻



  • MySQL: É um sistema de gerenciamento de banco de dados (SGBD) relacional, ou seja, que utiliza a linguagem SQL como interface. Lançado sobre a licença GPL, possui como desenvolvedor a Oracle Corporation.

  • HTML: É uma linguagem de marcação utilizada para estruturar e organizar o conteúdo das páginas da web. Com suas tags e elementos, permite a criação de textos, imagens, links e formulários, fornecendo a base fundamental para a construção de sites. É complementado por outras tecnologias como CSS e JavaScript para estilização e interatividade.

  • CSS: É uma linguagem de estilo utilizada para definir a apresentação e o layout visual das páginas da web.

  • PHP: É uma linguagem de programação server-side amplamente utilizada para desenvolvimento web. Com sua sintaxe simples e poderosa, permite a criação de sites dinâmicos, interativos e conectados a bancos de dados, possibilitando a construção de aplicativos web robustos.

  • JavaScript: É uma linguagem de programação versátil e poderosa, utilizada para adicionar interatividade, funcionalidades dinâmicas e comportamentos aos sites.

  • Trello: É uma ferramenta de gerenciamento de projetos baseada em quadros virtuais que permite organizar tarefas e colaborar em equipes de forma visual e intuitiva.

Contribuições Individuais 🎯

Atribuições como Desenvolvedor Back-end e Front-end

Como desenvolvedor nesse projeto, minhas atribuições foram essenciais para a implementação das interfaces do usuário e para garantir uma experiência de usuário fluida e amigável.

Minha contribuição, utilizando PHP, permitiu a implementação da funcionalidade de autenticação de usuários, a persistência de dados por meio de variáveis de sessão e o reaproveitamento de código com a inclusão de arquivos PHP. Essas contribuições foram essenciais para o bom funcionamento e segurança do sistema de login do cliente no projeto.

Código em PHP - Manipulação dos dados

Inicialização de sessão: Com a linha "?php session_start(); ?", iniciei uma sessão PHP. Isso permite que armazene e acesse variáveis de sessão, que podem ser usadas para manter dados específicos do usuário entre as requisições.

Utilizei o PHP para manipular os dados submetidos no formulário de login. O formulário é enviado para o arquivo "autenticando_clientes.php" através do atributo action no elemento "form".

 
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <?php include('cabecalho.php');?>
	<title>Login do cliente</title>
</head>
<body>
  <?php include('navbar.php');?>
  <?php (include("progresso.php"))(1);?>
 
  <div class="container">
	<!-- Main Content -->
	<div class="container-fluid">
		<div class="row main-content bg-success text-center">
			<div class="col-md-4 text-center company__info">
				<span class="company__logo"><h2><img src="images/sos.gif" alt="" width="120px" height="120px"></span></h2></img>
			</div>
			<div class="col-md-8 col-xs-12 col-sm-12 login_form ">
				<div class="container-fluid">
					<div class="row">
						<h2>Log In</h2>
					</div>
					<div class="row">
						<form control="" class="form-group" action="autenticando_clientes.php" method="POST">
							<div class="row">
								<input type="text" id="username" class="form__input" name="usuario" value="<?php echo @$_SESSION['usuario']?>"  placeholder="Digite seu Email">
							</div>
							<div class="row">
								<!-- <span class="fa fa-lock"></span> -->
								<input type="password" id="password" class="form__input" name="senha" <?= @$_SESSION['senha'] ? 'autofocus' : '' ?>  maxlength="8" placeholder="Digite sua senha">
							</div>
							<div class="row">
								<input type="submit" value="Login" class="btn2">
							</div>
						</form>
					</div>
				</div>
			</div>
		</div>
  </div>
</div>
</body>
  <?php include('rodape.php');?> 
</body>
</html>

Realizei a validação do e-mail e senha fornecidos. Verifiquei se ambos os campos foram preenchidos, garantindo que o usuário tenha fornecido as informações necessárias para efetuar o login. Após a validação, utilizei a função fetch para fazer uma chamada assíncrona para o back-end, utilizando o método POST. Enviei os dados do login em formato JSON, incluindo o e-mail e a senha. No back-end, em um arquivo PHP chamado "login.php", os dados recebidos foram processados e a autenticação do usuário foi verificada. A resposta do back-end foi tratada utilizando os métodos then e catch. Em caso de sucesso, os dados retornados pelo back-end foram processados e tratados de acordo. Em caso de erro, qualquer exceção ou falha na chamada foi capturada e tratada adequadamente.

Código em JavaScript - Validação do Formulário de Login
document.getElementById("loginForm").addEventListener("submit", function(event) {
  event.preventDefault();
  var email = document.getElementById("email").value;
  var password = document.getElementById("password").value;
  
  // Realizar validação do email e senha
  if (email && password) {
    // Fazer chamada assíncrona para o back-end em PHP
    fetch("login.php", {
      method: "POST",
      body: JSON.stringify({ email: email, password: password }),
      headers: {
        "Content-Type": "application/json"
      }
    })
    .then(response => response.json())
    .then(data => {
      // Tratar a resposta do back-end
    })
    .catch(error => {
      // Tratar erros
    });
  }
});

Criação e Estilização de Interfaces: desenvolvi as interfaces do usuário utilizando HTML, CSS e Bootstrap, seguindo as diretrizes de design fornecidas pelo Figma como referência. Ajudei a criar um layout responsivo que se adaptasse a diferentes dispositivos e tamanhos de tela. Isso permitiu que os usuários acessassem o site de qualquer dispositivo, como computadores, tablets e smartphones, proporcionando uma experiência consistente. Ao utilizar o Bootstrap, aproveitei os componentes e classes pré-definidos para criar rapidamente interfaces consistentes, economizando tempo e esforço.

Código em CSS - Estilização do formulário de Login
  .wrapper {
    display: flex;
    align-items: center;
    flex-direction: column; 
    justify-content: center;
    width: 100%;
    min-height: 100%;
    padding: 20px;
  }
  
  #formContent {
    -webkit-border-radius: 10px 10px 10px 10px;
    border-radius: 10px 10px 10px 10px;
    background: #fff;
    padding: 30px;
    width: 90%;
    max-width: 450px;
    position: relative;
    padding: 0px;
    -webkit-box-shadow: 0 30px 60px 0 rgba(0,0,0,0.3);
    box-shadow: 0 30px 60px 0 rgba(0,0,0,0.3);
    text-align: center;
  }
  
  #formFooter {
    background-color: #f6f6f6;
    border-top: 1px solid #dce8f1;
    padding: 25px;
    text-align: center;
    -webkit-border-radius: 0 0 10px 10px;
    border-radius: 0 0 10px 10px;
  }

Funcionamento 💡

Aprendizados Efetivos 📖

Tive a oportunidade de aprofundar meus conhecimentos em desenvolvimento web, especialmente em relação à criação de um site de comércio eletrônico completo. Isso envolveu o domínio de tecnologias como HTML, CSS e JavaScript, além de frameworks e bibliotecas relevantes para a implementação de recursos de navegação, busca e filtragem. Além disso, tive a chance de trabalhar com bancos de dados, uma vez que o projeto envolvia a gestão e organização de um amplo catálogo de materiais didáticos. Nesse contexto, o aprendizado e a aplicação do MySQL foram fundamentais para entender e implementar a estrutura de dados necessária para armazenar e recuperar as informações relevantes.

Outro aspecto importante foi o foco na usabilidade e experiência do usuário. Ao implementar recursos de busca e filtragem avançados, tive que considerar a facilidade de navegação e o fornecimento de informações relevantes de forma eficiente, contribuindo para a satisfação dos usuários e tornando o site mais atraente. Além disso, o desenvolvimento desse projeto permitiu que eu aprimorasse minhas habilidades de trabalho em equipe, uma vez que a criação de um site de comércio eletrônico envolve diferentes etapas e requer colaboração com os integrantes da equipe.

Hard Skills

Tecnologia/Metodologia Nota Classificação
Metodologia Ágil Scrum ★★☆☆☆ Já ouvi falar
MySQL ★★★☆☆ Entendi
HTML ★★★★☆ Sei fazer com ajuda
CSS ★★★★☆ Sei fazer com ajuda
PHP ★★★☆☆ Sei fazer com ajuda
JavaScript ★★☆☆☆ Já ouvi falar
GIT ★★★☆☆ Sei fazer com ajuda

Soft Skills

Habilidade Descrição
Proatividade Precisei estudar bastante sobre desenvolvimento web.
Conhecimento Precisei aprender a utilizar e aplicar o Scrum no projeto.
Comunicação Precisei me comunicar sobre a evolução das minhas tarefas.
Organização Precisei organizar a documentação e código no GitHub.

Navegação Projetos 🔗

  • 1º Semestre: SOS EDUCA - Site de Vendas de Materiais Didáticos
  • 2º Semestre: GSW - Dashboard para acompanhamentos dos projetos, através de diferentes fontes de dados.
  • 3° Semestre: PromoAll - Ecommerce com um motor de regras para promoções aplicadas no momento da compra.
  • 4° Semestre: Subiter - Aplicação Web para sincronização dos dados administrativos, financeiros e operacionais.
  • 5º Semestre: Tech Ninjas - Automatização de transferência de arquivos entre nuvens.
  • 6º Semestre: Tech Vision - Sistema de Informação Geográfica de dados públicos do ProAgro.