Este repositório contém uma API RESTful em PHP que permite a realização de operações CRUD (Create, Read, Update, Delete) em um banco de dados MySQL. Além disso, ele apresenta testes de erros do PHPUnit para garantir a estabilidade do sistema. O front-end do sistema foi desenvolvido apenas em Javascript e CSS, com o objetivo de comprovar minhas habilidades técnicas.
Embora tenha sido criado apenas para fins de estudo, o sistema pode ser utilizado em um servidor real, pois conta com meios de segurança utilizados em servidores reais, como filtro de inputs, proteção xsfr, proteção contra MySQL injection, entre outros, que podem ser vistos no código fonte.
O sistema inclui media-queries em CSS juntamente com display flex para garantir a responsividade em todas as telas. Além disso, otimizei o overflow para criar um efeito dinâmico entre o header e o footer.
O repositório está organizado da seguinte maneira:
Controllers
:Os Controllers são responsáveis por controlar cada modelo do aplicativo. Eles enviam dados para a view e executam a validação dos dados recebidos. Além disso, a classe de rotas se conecta aos Controllers para encaminhar as solicitações recebidas.Models
:Os modelos são responsáveis por conectar o aplicativo ao banco de dados. Cada modelo representa uma tabela no banco de dados. Por exemplo, o modelo de usuáriouser
possui uma chave estrangeira no modelo/tabelainformacao
para registrar quem cadastrou cada informação.Views
:As views são responsáveis pela exibição de informações para o usuário, mas quem decide se o usuário tem permissão para acessar uma determinada página é o controlador. As views são responsáveis pelo Front-End da aplicação e geralmente incluem linguagens como Javascript e CSS para fornecer uma interface interativa e agradável ao usuário.Code
:Este diretório é destinado ao armazenamento de scripts em JavaScript..Style
:Este diretório é destinado ao armazenamento de scripts em CSS.WebFonts
:Neste projeto, foi utilizado o recurso de font FontAwesome para tornar a interface do usuário mais atraente.
Para executar este projeto em seu ambiente local, você precisará ter instalado:
- PHP 7.2 ou superior
- MySQL 5.7 ou superior
Para instalar e configurar este projeto em seu ambiente local, siga estas etapas:
- Clone o repositório para o seu computador
- Configure o banco de dados no arquivo
config.php
- Inicie o servidor PHP no arquivo
index.php
com o comandophp -S localhost:8000
- Acesse a documentação em
http://localhost:8000/pastaDoArquivo/sobre
para ver as rotas disponíveis e seus parâmetros.
A API permite a realização das seguintes operações:
Método HTTP | Endpoint | Descrição |
---|---|---|
POST | user/criarConta | Cria uma nova conta de usuário |
POST | user/acessarConta | Faz o login do usuário |
POST | user/verificarsenha | Verifica se a senha inserida pelo usuário está correta |
POST | user/trocarSenha | Troca a senha do usuário |
POST | informacao/inserirInformacao | Insere uma nova informação no sistema |
GET | home | Redireciona para a página principal do site |
GET | sobre | Redireciona para a página "Sobre" do site |
GET | informacao/{id} | Exibe as informações correspondentes ao ID fornecido |
GET | user/criar | Redireciona para a página de criação de nova conta de usuário |
GET | user/logar | Redireciona para a página de login do usuário |
GET | user/conta | Redireciona para a página principal da conta do usuário |
GET | user/configuracao | Redireciona para a página de configurações da conta do usuário |
GET | user/trocarsenha | Redireciona para a página de troca de senha do usuário |
GET | user/app | Exibe informações adicionais do sistema para usuários logados |
GET | user/sair | Faz logout do usuário |
DELETE | informacao/{id} | Deleta uma informação correspondente ao ID fornecido |
PUT | informacao/{id} | Atualiza uma informação correspondente ao ID fornecido |
Você pode enviar requisições HTTP para a API usando o software de sua escolha, como o Postman ou o cURL. Certifique-se de fornecer os parâmetros necessários para cada rota, conforme especificado na documentação.
<h2>Licença</h2>
<p>Este projeto está licenciado sob a Licença MIT.</p>