Projeto de Engenharia de Software
- PHP 8 (CLI)
- MySQL 8 (servidor)
- Terminal (zsh/bash/PowerShell)
macOS (Homebrew):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew update
brew install php mysqlLinux (Ubuntu/Debian):
sudo apt update
sudo apt install -y php php-cli php-mysql mysql-serverLinux (Fedora):
sudo dnf install -y php php-cli php-mysqlnd @mysql
sudo systemctl enable --now mysqldWindows (opções):
- XAMPP (mais simples): instale o XAMPP e habilite Apache/PHP e MySQL.
- Chocolatey:
choco install php mysql- Winget:
winget install PHP.PHP
winget install Oracle.MySQL- Alternativa recomendada: WSL + Ubuntu e siga os passos do Linux Ubuntu.
macOS (Homebrew):
brew services start mysql
mysql --versionLinux (systemd):
sudo systemctl enable --now mysql # ou mysqld, dependendo da distro
mysql --versionWindows:
- XAMPP: abra o XAMPP Control Panel e clique em Start no MySQL.
- Serviço MySQL: inicie o serviço "MySQL80" pelo Services.msc ou PowerShell (
Start-Service MySQL80).
mysql_secure_installation # siga os prompts se quiser
# Acessar o MySQL (ajuste -p se tiver senha definida)
mysql -u root
-- dentro do MySQL:
CREATE DATABASE IF NOT EXISTS scrum_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS 'engsoft'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON scrum_db.* TO 'engsoft'@'%';
FLUSH PRIVILEGES;
EXIT;Observação: Para apenas testar a página inicial, não é obrigatório importar o schema agora (a página de teste só executa SELECT 1). O arquivo database/schema.sql modela as tabelas e pode exigir ajustes para MySQL. Se quiser criar as tabelas depois, adapte os tipos para MySQL antes de executar.
macOS/Linux (bash/zsh):
export DB_HOST=127.0.0.1
export DB_PORT=3306
export DB_NAME=scrum_db
export DB_USER=engsoft # ou root
export DB_PASS=strong_password
export DB_CHARSET=utf8mb4Windows (PowerShell, somente para a sessão atual):
$env:DB_HOST = "127.0.0.1"
$env:DB_PORT = "3306"
$env:DB_NAME = "scrum_db"
$env:DB_USER = "engsoft" # ou root
$env:DB_PASS = "strong_password"
$env:DB_CHARSET = "utf8mb4"Windows (CMD, somente para a sessão atual):
set DB_HOST=127.0.0.1
set DB_PORT=3306
set DB_NAME=scrum_db
set DB_USER=engsoft
set DB_PASS=strong_password
set DB_CHARSET=utf8mb4Para tornar permanente (macOS/Linux), adicione ao ~/.zshrc ou ~/.bashrc e rode source no arquivo correspondente.
cd Project_eng_software
php -S localhost:8000 -t publicAbra http://localhost:8000/ no navegador. A página mostrará a data/hora e o status da conexão MySQL.
- Conexão recusada: verifique se o MySQL está em execução (Homebrew Services, systemd, XAMPP/serviço no Windows).
- Falha de autenticação: confira
DB_USER/DB_PASSe permissões noscrum_db. - Banco desconhecido: crie o DB (
CREATE DATABASE scrum_db ...). - Use
DB_HOST=127.0.0.1(nãolocalhost) para forçar conexão TCP no PDO.
O frontend (pasta app/ e componentes React) espera consumir uma API PHP via HTTP.
- Configure a URL base da API no ambiente do Next.js:
macOS/Linux (bash/zsh):
export NEXT_PUBLIC_API_BASE_URL="http://localhost:8000" # URL do servidor PHPWindows (PowerShell):
$env:NEXT_PUBLIC_API_BASE_URL = "http://localhost:8000"- Execute o Next.js em desenvolvimento:
pnpm install
pnpm dev- A aplicação usará
NEXT_PUBLIC_API_BASE_URLpara fazer chamadas (ex.:/projects,/backlog,/auth/login). Se necessário, ajuste as rotas no backend para corresponderem a esses endpoints ou atualizelib/api.tscom os caminhos corretos.