Sistema em CodeIgniter4, que utiliza o Shield para autenticação via web (Session) e API (token). O sistema foi desenvolvido aproveitando ao máximo as funcionalidades oferecidas pelo framework para validação de rotas, desenvolvimento da interface e aplicação das regras de negócio.
Para ter uma ideia mais concreta do projeto, você pode assistir a um vídeo demonstrando seu funcionamento aqui
Env: Renomeie o arquivo env
localizado na pasta src
para .env
e configure-o ou copie e cole as informações a seguir.
Na variável hostname{ALTERE AQUI}
, se você estiver utilizando o Docker, altere para "postgres"; caso contrário, deixe como "localhost".
CI_ENVIRONMENT = development
APP_NAME = 'HEALTH'
app.baseURL = 'http://localhost:8080'
database.default.hostname = {ALTERE AQUI}
database.default.database = ci4
database.default.username = postgres
database.default.password = root
database.default.DBDriver = Postgre
database.default.DBPrefix =
database.default.port = 5432
database.tests.hostname = {ALTERE AQUI}
database.tests.database = ci4_test
database.tests.username = postgres
database.tests.password = root
database.tests.DBDriver = Postgre
database.tests.DBPrefix =
database.tests.port = 5432
Certifique-se de ter o Docker instalado em sua máquina.
1 - Iniciar Docker: Acesse a pasta src
com o comando cd src
, e execute o comando docker compose up
.
2 - Acessar Container: Execute o comando docker exec -it ci4-server //bin//sh
. Se caso não funcionar tente com /bin/sh
.
3 - Instalação de Dependências: Dentro do container execute o comando composer up
para instalar todas as dependências necessárias.
4 - Rodar Migrations: Dentro do container execute o comando php spark migrate --all
.
5 - Rodar Seeders: Após rodar as migrations execute o comando php spark db:seed DatabaseSeeder
.
Certifique-se de ter o PostgreSQL instalado em sua máquina.
1 - Instalação de Dependências: Acesse a pasta src
com cd src
, e execute o comando composer up
para instalar todas as dependências necessárias.
2 - Criando Banco de Dados: Dentro da pasta src
execute os comandos php spark db:create ci4
e php spark db:create ci4_test
. Se caso não funcionar crie os bancos ci4
e ci4_test
manualmente.
2 - Rodar Migrations: Dentro da pasta src
execute o comando php spark migrate --all
.
3 - Rodar Seeders: Após rodar as migrations, dentro da pasta src
execute o comando php spark db:seed DatabaseSeeder
.
4 - Iniciando o Servidor: Execute php spark serve
para iniciar o servidor na porta especificada no .env e todos os serviços da aplicação.
Testes: Para rodar os testes execute composer run test
.
Web: Acesse o sistema em http://localhost:8080/login
e crie um cadastro.
Api: Segue abaixo os endpoints para a utilização da API.
Rota para se cadastrar no sistema.
- Método: POST
- URL:
http://localhost:8080/api/register
- Headers:
Content-Type
application/json
- Corpo da Requisição:
{ "username": "String (Obrigatório)", "email": "String (Obrigatório)", "password": "String (Obrigatório)", "password_confirm": "String (Obrigatório)" }
Rota para se autenticar e gerar o access token.
- Método: POST
- URL:
http://localhost:8080/api/login
- Headers:
Content-Type
application/json
- Corpo da Requisição:
{ "email": "String (Obrigatório)", "password": "String (Obrigatório)", "device_name": "String (Obrigatório)" }
Rota para listar pacientes com e sem filtro.
- Método: GET
- URL:
http://localhost:8080/api/patient
- Headers:
Content-Type
application/jsonAuthorization
Bearer Token
- Parâmetros de Consulta:
search_deleted
: Booleansearch
: Stringpage
: Number
Rota para exibir informações de um paciente.
- Método: GET
- URL:
http://localhost:8080/api/patient/{id: Number}
- Headers:
Content-Type
application/jsonAuthorization
Bearer Token
Rota para Cadastrar um novo paciente.
-
Método: POST
-
URL:
http://localhost:8080/api/patient
-
Headers:
Content-Type
multipart/form-dataAuthorization
Bearer Token
-
Corpo da Requisição:
{ "image": "Imagem (Opcional)", "name": "String (Obrigatório)", "mother_name": "String (Obrigatório)", "birth_date": "String (YYYY-mm-dd) (Obrigatório)", "cpf": "String (Obrigatório)", "cns": "String (Obrigatório)", "zip_code": "String (Obrigatório)", "street": "String (Obrigatório)", "number": "String (Opcional)", "neighborhood": "String (Obrigatório)", "city": "String (Obrigatório)", "state_id": "Boolean (Obrigatório)" }
Rota para atualizar um paciente.
-
Método: PATCH ou PUT
-
URL:
http://localhost:8080/api/patient/{id: Number}
-
Headers:
Content-Type
multipart/form-dataAuthorization
Bearer Token
-
Corpo da Requisição:
{ "image": "Imagem (Opcional)", "name": "String (Opcional)", "mother_name": "String (Opcional)", "birth_date": "String (YYYY-mm-dd) (Opcional)", "cpf": "String (Opcional)", "cns": "String (Opcional)", "zip_code": "String (Opcional)", "street": "String (Opcional)", "number": "String (Opcional)", "neighborhood": "String (Opcional)", "city": "String (Opcional)", "state_id": "Boolean (Opcional)" }
Rota para deletar um paciente.
- Método: DELETE
- URL:
http://localhost:8080/api/patient/{id: Number}
- Headers:
Content-Type
application/jsonAuthorization
Bearer Token
Rota para ativar um paciente.
- Método: PATCH
- URL:
http://localhost:8080/api/patient/{id: Number}/active
- Headers:
Content-Type
application/jsonAuthorization
Bearer Token