Compare commits
31 Commits
4a92dea20c
...
develop-ga
| Author | SHA1 | Date | |
|---|---|---|---|
| 3a92010083 | |||
| f86b68e4ed | |||
| 2f2eb352bc | |||
| 839a02fd6a | |||
| 5f3cb7e176 | |||
| 05829c6a46 | |||
| 304cfc8663 | |||
| 31865ce5d9 | |||
| 05d8dc2235 | |||
| 0e17a24c13 | |||
| 40a958f6db | |||
| d2b15ee500 | |||
| d50e3eb070 | |||
| 9d0f175f00 | |||
| f5ad50dac5 | |||
| 398efda11e | |||
| 6e0f6b2753 | |||
| 2afdbe8f50 | |||
| 05124a0092 | |||
| 2e9fbe5361 | |||
| 4467b3ec30 | |||
| b5c4f500bf | |||
| f3ba84eb4b | |||
| 3f3ea89dc4 | |||
| 98e544176c | |||
| 886e27cb41 | |||
| 55ad55cf2e | |||
| f7edf23937 | |||
| 6362eb8a47 | |||
| 1479ff9d20 | |||
| 4186a990e3 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.env
|
||||
.vscode/*
|
||||
14
.htaccess
14
.htaccess
@@ -1,9 +1,19 @@
|
||||
RewriteEngine On
|
||||
|
||||
# Impede que acessem pastas confidenciais (opcional, dependendo da estrutura)
|
||||
# 1. Define a página de erro 404 personalizada na nova pasta
|
||||
ErrorDocument 404 /public/notfound.php
|
||||
|
||||
# 2. Protege pastas de sistema, mas permite acesso à pasta public
|
||||
# Bloqueia src, config e vendor
|
||||
RewriteRule ^(src|config|vendor)/ - [F,L]
|
||||
|
||||
# Se o arquivo ou diretório não existir fisicamente, manda para o index.php
|
||||
# 3. Regra do Roteador (Front Controller)
|
||||
# Se o arquivo ou diretório solicitado não existir fisicamente...
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
|
||||
# ...E não for a própria página de erro (para evitar loops)
|
||||
RewriteCond %{REQUEST_URI} !^/public/notfound.php
|
||||
|
||||
# Envia a requisição para o index.php
|
||||
RewriteRule ^(.*)$ index.php [QSA,L]
|
||||
48
.vscode/launch.json
vendored
Normal file
48
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Listen for Xdebug",
|
||||
"type": "php",
|
||||
"request": "launch",
|
||||
"port": 9003
|
||||
},
|
||||
{
|
||||
"name": "Launch currently open script",
|
||||
"type": "php",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"cwd": "${fileDirname}",
|
||||
"port": 0,
|
||||
"runtimeArgs": [
|
||||
"-dxdebug.start_with_request=yes"
|
||||
],
|
||||
"env": {
|
||||
"XDEBUG_MODE": "debug,develop",
|
||||
"XDEBUG_CONFIG": "client_port=${port}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Launch Built-in web server",
|
||||
"type": "php",
|
||||
"request": "launch",
|
||||
"runtimeArgs": [
|
||||
"-dxdebug.mode=debug",
|
||||
"-dxdebug.start_with_request=yes",
|
||||
"-S",
|
||||
"localhost:0"
|
||||
],
|
||||
"program": "",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"port": 9003,
|
||||
"serverReadyAction": {
|
||||
"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
|
||||
"uriFormat": "http://localhost:%s",
|
||||
"action": "openExternally"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
76
CONTRIBUTING.md
Normal file
76
CONTRIBUTING.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 🚀 Guia de Desenvolvimento - Sistema de Controle de Faltas
|
||||
|
||||
Bem-vindos à equipe! Este projeto une nossas duas turmas em uma simulação real de mercado. Como desenvolvedores, vocês serão responsáveis por construir uma ferramenta robusta utilizando **PHP Orientado a Objetos** e **Bootstrap**.
|
||||
|
||||
Para que nossa colaboração funcione e o sistema rode perfeitamente no **EasyPanel**, todos devemos seguir este manual.
|
||||
|
||||
---
|
||||
|
||||
## 🌳 1. Nossas Branches (Onde o código mora)
|
||||
|
||||
Para manter a organização, o repositório é dividido em níveis de segurança:
|
||||
|
||||
* **`main` (Produção):** É o código que o cliente vê. **Ninguém** faz commit direto aqui. Apenas o Gerente move o código para cá quando tudo está testado.
|
||||
* **`develop` (Integração):** É onde o trabalho de todos se encontra. Vocês abrirão seus pedidos de união (Pull Requests) para esta branch.
|
||||
* **`feature/seu-nome-tarefa` (Criação):** Toda nova tarefa deve ser feita em uma branch própria criada a partir da `develop`.
|
||||
|
||||
---
|
||||
|
||||
## 💬 2. Padrão de Commits (Como você comunica seu progresso)
|
||||
|
||||
Mensagens de commit ruins como "ajuste" ou "testando" não serão aceitas. Usaremos o padrão **Conventional Commits**. Escreva sempre no **imperativo** (ex: "Adiciona", e não "Adicionei").
|
||||
|
||||
### Tipos que vocês mais usarão:
|
||||
| Tipo | Quando usar? | Exemplo |
|
||||
| :--- | :--- | :--- |
|
||||
| **`feat`** | Quando você cria algo novo. | `feat: adiciona o formulário de login` |
|
||||
| **`fix`** | Quando você resolve um erro. | `fix: corrige erro de conexão com o banco` |
|
||||
| **`docs`** | Quando você altera apenas o README ou manuais. | `docs: detalha o funcionamento do banco` |
|
||||
| **`style`** | Alteração visual com Bootstrap (CSS/Layout). | `style: centraliza os botões do dashboard` |
|
||||
| **`refactor`** | Quando você melhora um código PHP sem mudar o que ele faz. | `refactor: simplifica o método de busca` |
|
||||
|
||||
---
|
||||
|
||||
## 🛠 3. O Fluxo de Trabalho (Passo a Passo)
|
||||
|
||||
Sempre que você for começar uma tarefa, siga estes passos:
|
||||
|
||||
1. **Atualize seu computador:**
|
||||
```bash
|
||||
git checkout develop
|
||||
git pull origin develop
|
||||
```
|
||||
2. **Crie sua branch de trabalho:**
|
||||
```bash
|
||||
git checkout -b feature/nome-da-sua-tarefa
|
||||
```
|
||||
3. **Trabalhe no código:**
|
||||
Faça commits pequenos e frequentes seguindo os padrões acima.
|
||||
4. **Suba para o Gitea:**
|
||||
```bash
|
||||
git push origin feature/nome-da-sua-tarefa
|
||||
```
|
||||
5. **Peça a Revisão (Pull Request):**
|
||||
No Gitea, abra um Pull Request para a branch `develop`. **Eu (Gerente)** revisarei seu código e, se estiver tudo certo, farei a aprovação.
|
||||
|
||||
---
|
||||
|
||||
## 📂 4. Arquitetura do Projeto (PHP OOP)
|
||||
|
||||
Não utilizaremos frameworks, por isso a organização das pastas é vital para o funcionamento do nosso container Docker:
|
||||
|
||||
* **`/config`**: Arquivos de conexão e variáveis de ambiente.
|
||||
* **`/public`**: É a única pasta visível para o navegador. Contém o `index.php` e arquivos CSS/JS.
|
||||
* **`/src/Controller`**: Onde ficará a lógica que decide o que mostrar.
|
||||
* **`/src/Model`**: Onde as classes PHP conversam com o Banco de Dados (Use PDO!).
|
||||
* **`/src/View`**: Onde o HTML com Bootstrap será escrito.
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 5. Regras de Ouro
|
||||
* **Segurança:** Nunca coloque senhas no código. Se precisar de uma credencial, peça ao Gerente para configurar no EasyPanel.
|
||||
* **Qualidade:** Antes de abrir um Pull Request, verifique se não esqueceu nenhum `var_dump` ou comentário desnecessário.
|
||||
* **Colaboração:** Ajude seus colegas. Se o código dele estiver difícil de entender, comente no Pull Request!
|
||||
|
||||
---
|
||||
**Bom trabalho a todos! Vamos construir um sistema incrível.**
|
||||
7
env.example
Normal file
7
env.example
Normal file
@@ -0,0 +1,7 @@
|
||||
# Banco de Dados:
|
||||
DB_HOST_INTERNAL=enredero_interno_do_servidor_db
|
||||
DB_HOST_EXTERNAL=enredero_interno_do_servidor_db
|
||||
DB_PORT=porta
|
||||
DB_NAME=nome_do_banco
|
||||
DB_USER=_usuario_do_banco
|
||||
DB_PASS=senha_do_banco
|
||||
8
exemplos/MarcosAssuncao/teste.php
Normal file
8
exemplos/MarcosAssuncao/teste.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<H1>Título HTML</H1>
|
||||
<?php
|
||||
if (1 > 2) {
|
||||
echo "1 é maior do que 2";
|
||||
} else {
|
||||
echo "1 não é maior do que 2";
|
||||
}
|
||||
?>
|
||||
77
exemplos/bootstrap.php
Normal file
77
exemplos/bootstrap.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pt-br">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Protótipo de Interface - Reserva de Hotéis</title>
|
||||
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
||||
</head>
|
||||
<body class="bg-light">
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-primary shadow-sm">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="#">HotelReserve</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav ms-auto">
|
||||
<li class="nav-item"><a class="nav-link active" href="#">Busca</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#">Minhas Reservas</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#">Perfil</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main class="container my-5">
|
||||
<section class="card border-0 shadow-sm p-4 mb-4">
|
||||
<h2 class="h4 mb-3">Encontre sua próxima estadia</h2>
|
||||
<form class="row g-3">
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Destino</label>
|
||||
<input type="text" class="form-control" placeholder="Cidade ou Hotel">
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Check-in</label>
|
||||
<input type="date" class="form-control">
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Hóspedes</label>
|
||||
<select class="form-select">
|
||||
<option>1 Pessoa</option>
|
||||
<option>2 Pessoas</option>
|
||||
<option>Família</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-2 d-flex align-items-end">
|
||||
<button type="submit" class="btn btn-warning w-100 fw-bold">Pesquisar</button>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<section class="row">
|
||||
<div class="col-md-6 col-lg-4">
|
||||
<div class="card h-100 shadow-sm border-0">
|
||||
<img src="https://via.placeholder.com/400x250" class="card-img-top" alt="Hotel Exemplo">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Resort Vista Mar</h5>
|
||||
<p class="card-text text-muted">A apenas 50 metros da praia, com café da manhã incluso.</p>
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<span class="fw-bold text-success">R$ 450,00 / dia</span>
|
||||
<a href="#" class="btn btn-outline-primary btn-sm">Ver Detalhes</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer class="text-center py-4 text-muted">
|
||||
<p>© 2026 - Atividade de ADS - Prototipação de Interfaces</p>
|
||||
</footer>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1 +1 @@
|
||||
<?php echo "Teste de Commit";
|
||||
<?php echo "Teste de deploy nas branches develop e main";
|
||||
1
public/notfound.php
Normal file
1
public/notfound.php
Normal file
@@ -0,0 +1 @@
|
||||
Não encontrado
|
||||
41
readme.md
Normal file
41
readme.md
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
# 📦 Sistema de Controle de Faltas de Mercadorias
|
||||
|
||||
Projeto prático desenvolvido em colaboração pelas turmas de TI da **Faculdade Anhanguera**. O objetivo deste sistema é permitir que uma loja gerencie e registre a falta de produtos em seu estoque ou no recebimento de mercadorias, auxiliando o setor de compras na tomada de decisões.
|
||||
|
||||
---
|
||||
|
||||
## 🛠 Tecnologias Utilizadas
|
||||
|
||||
Para este projeto, adotamos uma stack que equilibra fundamentos de programação e práticas modernas de infraestrutura:
|
||||
|
||||
* **Backend:** PHP 8.2 (Orientação a Objetos, sem frameworks).
|
||||
* **Frontend:** Bootstrap 5 (Interface responsiva).
|
||||
* **Banco de Dados:** MySQL.
|
||||
* **Infraestrutura:** Docker & EasyPanel.
|
||||
* **Versionamento e Gestão:** Gitea.
|
||||
|
||||
---
|
||||
|
||||
## 📐 Arquitetura do Projeto
|
||||
|
||||
O sistema segue o padrão **MVC (Model-View-Controller)** simplificado para garantir a separação de responsabilidades e facilitar o trabalho em equipe:
|
||||
|
||||
- **Models:** Responsáveis pela lógica de dados e comunicação com o banco via PDO.
|
||||
- **Views:** Arquivos PHP/HTML que utilizam Bootstrap para a interface com o usuário.
|
||||
- **Controllers:** Gerenciam as requisições e conectam o Model à View.
|
||||
|
||||
---
|
||||
|
||||
## 📂 Estrutura de Pastas
|
||||
|
||||
```text
|
||||
/
|
||||
├── config/ # Configurações de banco de dados e constantes
|
||||
├── public/ # Ponto de entrada (index.php), CSS, JS e imagens
|
||||
├── src/
|
||||
│ ├── Controller/ # Lógica de controle do sistema
|
||||
│ ├── Model/ # Classes de entidade e manipulação de dados
|
||||
│ └── View/ # Templates de exibição (Bootstrap)
|
||||
├── Dockerfile # Configuração para o container no EasyPanel
|
||||
└── README.md # Documentação principal
|
||||
Reference in New Issue
Block a user