Objetivo: Criar um sistema simples de gerenciamento de tarefas (To-Do List) usando PHP, HTML, CSS, MySQL e Docker Compose.
-
Crie um diretório chamado "todo-app" e coloque todos os arquivos do projeto dentro desse diretório.
-
Crie um arquivo chamado "docker-compose.yml" no diretório raiz do projeto, com as seguintes configurações:
version: '3'
services:
web:
image: php:apache
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
depends_on:
- db
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example_root_password
MYSQL_DATABASE: todo_db
MYSQL_USER: todo_user
MYSQL_PASSWORD: example_user_password
volumes:
- todo-data:/var/lib/mysql
volumes:
todo-data:
-
Crie uma pasta chamada "src" dentro do diretório "todo-app". Todos os arquivos PHP, HTML e CSS do projeto devem ser colocados dentro desta pasta.
-
Implemente o sistema de gerenciamento de tarefas dentro da pasta "src" de acordo com os requisitos mencionados anteriormente.
-
Certifique-se de que o arquivo de conexão com o banco de dados (por exemplo, "connection.php") esteja configurado para se conectar ao contêiner do banco de dados. Use as seguintes configurações de conexão:
<?php $host = 'db'; $user = 'todo_user'; $password = 'example_user_password'; $database = 'todo_db'; $conn = new mysqli($host, $user, $password, $database); if ($conn->connect_error) { die('Connection failed: ' . $conn->connect_error); }
-
Certifique-se de que o arquivo "index.php" (ou página principal) esteja configurado como ponto de entrada do sistema e exiba a lista de tarefas e formulários para adicionar e editar tarefas.
-
Teste o sistema localmente usando Docker Compose, execute o seguinte comando no terminal a partir do diretório "todo-app":
docker-compose up
Isso criará os contêineres para o PHP com Apache e o banco de dados MariaDB. O sistema estará acessível em http://localhost:8080.
-
Página de registro de usuários (campos: nome, e-mail e senha).
-
Página de login para permitir que os usuários acessem o sistema.
-
Página principal após o login, onde o usuário pode adicionar, editar, excluir e marcar tarefas como concluídas.
-
As tarefas devem ter pelo menos os seguintes campos: título, descrição, data de criação e status (pendente/concluída).
-
As tarefas devem ser exibidas em uma lista, e o usuário deve poder ordenar a lista por data de criação ou por status.
-
O sistema deve ter validação de formulário tanto no registro quanto no login.
-
Use MariaDb para armazenar os dados das tarefas e dos usuários.
-
O sistema não precisa ter autenticação de usuário por meio de e-mail. Basta permitir que um usuário registrado faça login usando usuário e senha.
-
O layout não precisa ser complexo, mas deve ser responsivo e ter uma aparência agradável.
- Certifique-se de que as configurações de conexão do banco de dados e do Docker Compose estejam corretas.
- Verifique se o sistema está funcionando corretamente antes de enviar o projeto.
- Você pode aplicar as mudanças que julgar necessário, apenas inclua as justificativas no seu README.md
- Você pode utilizar Symfony com framework ou nos surpreender desenvolvendo com php puro.
- Use o bootstrap se quiser.
- Adoramos easter eggs;
- Duração do teste: Recomendamos que você utilize aproximadamente 4 a 6 horas para completar o teste. No entanto, o limite de tempo não é estritamente aplicado.
- Faça um fork deste repositório e desenvolva o projeto nele.
- Ao concluir, crie um Pull Request para a branch principal.
- Inclua um arquivo README.md com instruções claras sobre como executar o projeto usando o Docker Compose e qualquer outra informação relevante.
- Certifique-se de que o projeto está funcionando corretamente antes de enviar o Pull Request.
Boa sorte! Estamos ansiosos para ver suas habilidades de desenvolvimento e conhecimento em Docker em ação!