- Do que se trata?
- Requisitos do servidor
- Requisitos para instalação
- Instalando o projeto
- Configuração
- Desenvolvimento
- Deploy
Este é o repositório da API desenvolvida para alimentar o site do Terceiro Encontro Gamer de Pará de Minas e o CMS responsável por tornar as informações do site dinâmicas. Desenvolvida em framework próprio, Nome Framework, utilizando PHP e seguindo o padrão Rest.
Projeto desenvolvido em conjunto com Marcus Pereira e Eduardo, em disciplina interdisciplinar do curso Gestão de Tecnologia da Informação da FAPAM (Faculdade de Pará de Minas).
- PHP 7.0
- MySQL version 10.2
- Servidor de Web (Apache, LiteSpeed)
Essas são as configurações utilizadas no desenvolvimento da aplicação, não sendo obrigatório o uso das tecnologias indicadas, caso ocorra algum erro com outras versões das aplicações, criar uma issue para análise e correções.
Para ambiente de testes local, recomendo o uso do Wamp ou Xampp.
O Composer é utilizado no projeto na gestão de dependências e no autoload das classes.
- Certifique de estar em um ambiente com o Composer e PHP instalados
- Faça o clone do repositório
- Abra o terminal de sua preferência, navegue até a pasta do projeto e execute o seguinte comando
composer install
Esse comando baixa e instala as dependências necessárias utilizadas no projeto e configura o autoload.
A configuração da aplicação pode ser realizada de duas maneiras distintas, abordaremos aqui a configuração por interface, construída para facilitar o processo.
A configuração por interface, foi construída para facilitar o processo de instalação e configuração da API, para isto, acesse a seguinte rota com o projeto já instalado.
/Start
Por exemplo http://API.egpm.com.br/**Start**
Será aberto uma página para realização da configuração. Siga os passos até obter a mensagem de sucesso. Preencha todos os dados de acordo com o seu ambiente.
Ao realizar a auto configuração, é necessário ter o conhecimento que:
- O arquivo de configuração do não sistema pode existir (Arquivo demonstrado a seguir)
- Todas as tabelas do banco serão gerados automaticamente, isto se a tabela não existir, se você já tem uma base de dados configurada, confira as observações no tópico Migração.
- O script se encarrega de gerar todos os dados iniciais do sistema
- O usuário administrador (admin) será criado automaticamente com a senha informada.
- O arquivo de configuração demonstrado no método abaixo, será gerado automaticamente
O método de auto instalação, irá gerar o arquivo básico de configuração do sistema.
É por meio deste arquivo que o sistema instancia a conexão com o banco de dados, e realiza os envios de emails.
├── api-egpm
│ └── config
│ │── config (Não versionado)
│ │── DataBaseStructure.sql
│ └── config.example
O arquivo de configuração terá o nome config, sem extensão de arquivo, o config.example, é usado para exemplos caso seja necessário realizar a configuração manualmente.
[bd];
st_name: PRIMARIO;
st_user: nome_usuario;
st_password: nome_senha;
st_dbname: nome_banco;
st_host: nome_host;
[email];
host: endereço_smtp;
port: 857;
username: usuario_servidor_email;
password: senha_servidor_email;
SMTPSecure: tls;
SMTPAuth: 1;
IsSMTP: 1;
from: email_de_envio;
replyTo: email_de_resposta;
[config];
st_operacao: DEV;
nu_minutossessao: 30;
st_senhacapcha: chaveReCAPTCHA;
st_key: JDIVGKOWDGVDGJDPSIFJ;
[bd]
Configurações do banco de dados utilizado para o gerenciamento dos dados.
- st_name: Nome de identificação do Banco de Dados (Mantenha o Padrão PRIMARIO)
- st_user: Nome do usuário do banco
- st_password: Senha do usuário adicionado anteriormente
- st_dbname: Nome da base de dados
- st_host: Host servidor da base de dados
[email]
Configurações do servidor de email utilizado para enviar emails do sistema, como recuperação de senha.
- host: Endereço do host do servidor smtp
- port: Porta responsável pelo serviço;
- username: Email de acesso ao servidor de email;
- password: Senha do email informado para acesso ao servidor de email;
- SMTPSecure: Tipo de protocolo tls|ssl;
- SMTPAuth: Utiliza SMTPAuth 1|0;
- IsSMTP: Utiliza SMTP 1|0;
- from: Email que será utilizado para enviar os emails;
- replyTo: Email por onde serão encaminhadas as respostas;
[config]
Configurações de funcionamento do sistema.
- st_operacao: Indica se a aplicação está em desenvolvimento ou produção: Use DEV para desenvolvimento e PRO para produção
- nu_minutossessao: Tempo de duração das sessões dos usuários
- st_senhacapcha: Chave secreta do reCAPTCHA
- st_key: Chave utilizada para geração de senhas pelo sistema (Não deve ser alterada após sua primeira definição)
Não é recomendado a configuração manual deste sistema, visto que:
- Será necessário a criação de itens iniciais no banco de dados, que são específicos para o seu funcionamento.
- Criação de Tipos de Usuário (tb_tipousuario) (Consulte: App/Constantes/TipoUsuario.php);
- Criação de Usuário inicial (tb_usuarios);
- Criação de Seções bases (tb_secao);
- Necessário a criação da base de dados. O script para criação se encontra na mesma pasta do arquivo de configuração DataBaseStructure.sql
- As senhas do banco de dados utilizam criptografia, portanto somente o sistema consegue avaliá-las.
- Uma maneira de alterar a senha de um usuário deixando a válida, é recuperando a senha do usuário pelo sistema.
Em caso de migração, realize a instalação conforme o tópico Instalando o projeto
-
Migração com clone da base dados
- Altere as informações do arquivo de configuração conforme o seu novo ambiente
- Altere a st_key do arquivo de configuração, para a mesma do projeto a ser migrado.
- A pasta Files que está na raiz do projeto, deverá ser copiada ou movida para o novo servidor.
-
Migração com base de dados limpa
- Configure o projeto conforme o tópico Configuração por interface
- Altere a st_key do arquivo de configuração, para a mesma do projeto a ser migrado.
- Limpe as tabelas (tb_usuarios, tb_tipousuarios, tb_secao) no banco recém criado.
- Importe as informações do banco anterior para o novo banco
- A pasta Files que está na raiz do projeto, deverá ser copiada ou movida para o novo servidor.
├── api-egpm
│ └── Files
A pasta Files é responsável por salvar todas as imagens upadas no sistema, e não é versionada. Em caso de migrações, ela deve ser levada para o novo servidor do projeto manualmente. Vale ressaltar que a mesma está atrelada a base de dados.
Para criar novas funcionalidades no projeto, é importante se atentar a alguns detalhes.
A documentação completa das funcionalidades do sistemas, estão presentes em seu repositório base Nome Framework.
Para realizar o deploy de sua aplicação, envie os arquivos do projeto para o seu servidor. A pasta vendor não deve ser enviada, visto que utilizaremos o composer para instalar as dependências do projeto.
Com o projeto no servidor, realize os passos de instalação e configuração.
O domínio ou subdomínio do seu website deve estar direcionado para a pasta public onde está o arquivo de inicialização da API.
├── api-egpm
│ └── public
│ |── .htaccess
│ └── index.php
Caso seja necessário configurar o .htaccess para o correto funcionamento das rotas.
Atualmente o .htaccess está configurado da seguinte forma.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]