| ... | ... | @@ -66,107 +66,86 @@ Este documento reúne as instruções "Começando / Getting Started" dos READMEs |
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## 🧰 PRÉ-REQUISITOS
|
|
|
|
|
|
|
|
Antes de iniciar, verifique se o seu ambiente possui as seguintes ferramentas instaladas:
|
|
|
|
|
|
|
|
# Backend — Ai Produtor
|
|
|
|
* **Git**
|
|
|
|
https://git-scm.com/
|
|
|
|
|
|
|
|
## 📥 Começando (Getting Started)
|
|
|
|
* **Node.js via NVM (recomendado)**
|
|
|
|
https://github.com/nvm-sh/nvm
|
|
|
|
```bash
|
|
|
|
nvm install --lts
|
|
|
|
nvm use --lts
|
|
|
|
```
|
|
|
|
|
|
|
|
Siga os passos abaixo para configurar e rodar o projeto. A aplicação inteira (API e Banco de Dados) é orquestrada com Docker, garantindo um ambiente consistente para todos os desenvolvedores.
|
|
|
|
* **Docker e Docker Compose**
|
|
|
|
https://www.docker.com/products/docker-desktop/
|
|
|
|
|
|
|
|
**Pré-requisitos**
|
|
|
|
---
|
|
|
|
|
|
|
|
* Git
|
|
|
|
* Docker e Docker Compose
|
|
|
|
* Node.js e npm (recomendado para executar comandos do Prisma localmente e para integração com VS Code)
|
|
|
|
# Backend — Ai Produtor
|
|
|
|
|
|
|
|
**Instalação e Primeira Execução (Feito apenas uma vez)**
|
|
|
|
## 📥 Começando (Getting Started)
|
|
|
|
|
|
|
|
1. **Clone o repositório:**
|
|
|
|
Siga os passos abaixo para configurar e rodar o projeto.
|
|
|
|
A aplicação inteira (API e Banco de Dados) é orquestrada com **Docker**, garantindo um ambiente consistente para todos os desenvolvedores.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git clone https://tools.ages.pucrs.br/ai-produtor-sistema-de-cadastro-e-gestao-de-produtores-de-hortifrutie/aiprodutor-backend.git
|
|
|
|
cd aiprodutor-backend
|
|
|
|
```
|
|
|
|
### Instalação e Primeira Execução (feita apenas uma vez)
|
|
|
|
|
|
|
|
2. **Configure as variáveis de ambiente:**
|
|
|
|
1. **Clone o repositório:**
|
|
|
|
```bash
|
|
|
|
git clone https://tools.ages.pucrs.br/ai-produtor-sistema-de-cadastro-e-gestao-de-produtores-de-hortifrutie/aiprodutor-backend.git
|
|
|
|
cd aiprodutor-backend
|
|
|
|
```
|
|
|
|
|
|
|
|
```bash
|
|
|
|
cp .env.example .env # macOS / Linux
|
|
|
|
# no PowerShell (Windows):
|
|
|
|
# copy .env.example .env
|
|
|
|
```
|
|
|
|
As variáveis de ambiente estão disponíveis no chat designado ao backend, no discord
|
|
|
|
2. **Configure as variáveis de ambiente:**
|
|
|
|
```bash
|
|
|
|
cp .env.example .env # macOS / Linux
|
|
|
|
# PowerShell (Windows):
|
|
|
|
# copy .env.example .env
|
|
|
|
```
|
|
|
|
As variáveis de ambiente estão disponíveis no chat designado ao backend (Discord).
|
|
|
|
|
|
|
|
3. **Construa e inicie os containers:**
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker compose up -d --build
|
|
|
|
```
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker compose up -d --build
|
|
|
|
```
|
|
|
|
|
|
|
|
4. **Aplique as migrações do banco de dados:**
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npx prisma migrate dev
|
|
|
|
```
|
|
|
|
|
|
|
|
> Se for a primeira vez ou se precisar recomeçar do zero, `npx prisma migrate reset` é uma opção.
|
|
|
|
```bash
|
|
|
|
npx prisma migrate dev
|
|
|
|
```
|
|
|
|
Se for a primeira vez ou se precisar recomeçar do zero, `npx prisma migrate reset` é uma opção.
|
|
|
|
|
|
|
|
5. **Reinicie o container da API (se necessário):**
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker compose restart backend
|
|
|
|
```
|
|
|
|
```bash
|
|
|
|
docker compose restart backend
|
|
|
|
```
|
|
|
|
|
|
|
|
**Como rodar no dia a dia (breve):**
|
|
|
|
|
|
|
|
* Iniciar containers: `docker compose up` (ou `docker compose up -d` para rodar em background)
|
|
|
|
* API: `http://localhost:3000`
|
|
|
|
* Swagger (API docs): `http://localhost:3000/api-docs`
|
|
|
|
* Iniciar containers: `docker compose up -d postgres`
|
|
|
|
* Rodar a aplicação em modo desenvolvimento: `npm run start:dev`
|
|
|
|
* API: http://localhost:3000
|
|
|
|
* Swagger (API docs): http://localhost:3000/api-docs
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## ⚙️ Como Rodar o Projeto no Dia a Dia (modo desenvolvimento)
|
|
|
|
|
|
|
|
**Porque dois terminais?**
|
|
|
|
Normalmente você precisa de um terminal para os serviços orquestrados pelo Docker (banco de dados, e opcionalmente backend) e outro terminal para rodar o servidor de desenvolvimento (hot-reload) do frontend e/ou backend quando você preferir desenvolver localmente em vez de dentro do container.
|
|
|
|
|
|
|
|
### Fluxo recomendado (desenvolvimento rápido)
|
|
|
|
|
|
|
|
**Terminal 1 — Banco de dados (Docker):**
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# na raiz do backend
|
|
|
|
cd aiprodutor-backend
|
|
|
|
docker compose up -d postgres
|
|
|
|
```
|
|
|
|
|
|
|
|
**Terminal 2 — Backend em hot-reload (local):**
|
|
|
|
|
|
|
|
```bash
|
|
|
|
cd aiprodutor-backend
|
|
|
|
npm install # se ainda não instalou
|
|
|
|
npm run start:dev
|
|
|
|
```
|
|
|
|
|
|
|
|
## 🌱 Populando o Banco de Dados (Seed)
|
|
|
|
|
|
|
|
O projeto contém um script para popular o banco com dados de exemplo (produtores, áreas, safras, etc).
|
|
|
|
|
|
|
|
**Execução automática:**
|
|
|
|
|
|
|
|
* O seed pode ser executado automaticamente na primeira vez que o ambiente é criado com `docker compose up --build` ou após `npx prisma migrate reset`.
|
|
|
|
|
|
|
|
**Execução manual:**
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# com o banco rodando
|
|
|
|
npx prisma db seed
|
|
|
|
```
|
|
|
|
|
|
|
|
**Prisma Studio (visualização):**
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npx prisma studio
|
|
|
|
# e acesse http://localhost:5555/
|
| ... | ... | @@ -176,13 +155,13 @@ npx prisma studio |
|
|
|
|
|
|
|
## 🔄 Resetando o Banco de Dados
|
|
|
|
|
|
|
|
Se você precisar **resetar o banco de dados** (apagar tabelas e dados e reaplicar migrations):
|
|
|
|
Se você precisar resetar o banco de dados (apagar tabelas e dados e reaplicar migrations):
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npx prisma migrate reset
|
|
|
|
```
|
|
|
|
|
|
|
|
**Atenção:** usar apenas em ambientes de desenvolvimento ou testes — todos os dados serão perdidos.
|
|
|
|
⚠️ Usar apenas em ambientes de desenvolvimento ou testes — todos os dados serão perdidos.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
| ... | ... | @@ -198,28 +177,118 @@ Em seguida rode `npm run start:dev` novamente. |
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## ⚠️ Problemas comuns & soluções rápidas
|
|
|
|
# Frontend — Ai Produtor
|
|
|
|
|
|
|
|
## 🚀 Começando (Getting Started)
|
|
|
|
|
|
|
|
Interface do usuário desenvolvida com **Next.js** e **TypeScript**, que consome a API do backend.
|
|
|
|
|
|
|
|
### Instalação e Primeira Execução (feita apenas uma vez)
|
|
|
|
|
|
|
|
1. **Clone o repositório:**
|
|
|
|
```bash
|
|
|
|
git clone https://tools.ages.pucrs.br/ai-produtor-sistema-de-cadastro-e-gestao-de-produtores-de-hortifrutie/aiprodutor-frontend.git
|
|
|
|
cd aiprodutor-frontend
|
|
|
|
```
|
|
|
|
|
|
|
|
2. **Configure as variáveis de ambiente:**
|
|
|
|
```bash
|
|
|
|
cp .env.local.example .env.local
|
|
|
|
```
|
|
|
|
|
|
|
|
3. **Instale as dependências:**
|
|
|
|
```bash
|
|
|
|
npm install
|
|
|
|
```
|
|
|
|
|
|
|
|
* **Collation Version Mismatch (Postgres):** conectar ao container e rodar `ALTER DATABASE template1 REFRESH COLLATION VERSION;` (instruções completas no README do backend).
|
|
|
|
* **Portas ocupadas:** verifique se as portas padrão (`3000`, `5432`, etc.) estão livres.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## ✅ Checklist final antes de começar a desenvolver
|
|
|
|
## ⚙️ Como Rodar o Projeto no Dia a Dia (modo desenvolvimento)
|
|
|
|
|
|
|
|
### Por que dois terminais?
|
|
|
|
|
|
|
|
* [ ] Git instalado e configurado (nome/email)
|
|
|
|
* [ ] Node via nvm instalado e versão LTS ativa (`nvm use --lts`)
|
|
|
|
* [ ] Docker rodando
|
|
|
|
* [ ] Repositórios clonados e `.env` copiado
|
|
|
|
* [ ] Dependências instaladas (`npm install`)
|
|
|
|
* [ ] Banco de dados migrado/seed aplicado (se for necessário)
|
|
|
|
Durante o desenvolvimento, você precisará de dois terminais:
|
|
|
|
- Um para o backend (API + banco, via Docker)
|
|
|
|
- Outro para o servidor de desenvolvimento do frontend
|
|
|
|
|
|
|
|
### Fluxo recomendado
|
|
|
|
|
|
|
|
**Terminal 1 — Backend e banco de dados:**
|
|
|
|
```bash
|
|
|
|
cd aiprodutor-backend
|
|
|
|
docker compose up
|
|
|
|
```
|
|
|
|
|
|
|
|
**Terminal 2 — Frontend (Next.js):**
|
|
|
|
```bash
|
|
|
|
cd aiprodutor-frontend
|
|
|
|
npm run dev
|
|
|
|
```
|
|
|
|
|
|
|
|
Acesse http://localhost:3001 no navegador.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## 🔗 Repositórios
|
|
|
|
## ⚙️ Variáveis de Ambiente (Frontend)
|
|
|
|
|
|
|
|
As variáveis de ambiente são gerenciadas através do arquivo `.env.local`.
|
|
|
|
|
|
|
|
* `NEXT_PUBLIC_API_URL`: URL base da API do backend (ex: http://localhost:3000)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
* Backend: `https://tools.ages.pucrs.br/ai-produtor-sistema-de-cadastro-e-gestao-de-produtores-de-hortifrutie/aiprodutor-backend.git`
|
|
|
|
* Frontend: `https://tools.ages.pucrs.br/ai-produtor-sistema-de-cadastro-e-gestao-de-produtores-de-hortifrutie/aiprodutor-frontend.git`
|
|
|
|
## 📜 Scripts Disponíveis (Frontend)
|
|
|
|
|
|
|
|
* `npm run dev` — Inicia o servidor de desenvolvimento (porta 3001)
|
|
|
|
* `npm run build` — Gera o build de produção
|
|
|
|
* `npm run start` — Inicia o servidor de produção (requer build prévio)
|
|
|
|
* `npm run lint` — Executa o ESLint para análise de código
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# ⚙️ Como Rodar o Projeto no Dia a Dia (modo desenvolvimento)
|
|
|
|
|
|
|
|
### Por que dois terminais?
|
|
|
|
|
|
|
|
São necessários dois terminais, um para rodar o Backend e outro para rodar o Frontend.
|
|
|
|
|
|
|
|
## Fluxo recomendado (desenvolvimento rápido)
|
|
|
|
|
|
|
|
**Terminal 1 — Backend em hot-reload (local):**
|
|
|
|
```bash
|
|
|
|
# na raiz do backend
|
|
|
|
cd aiprodutor-backend
|
|
|
|
npm install
|
|
|
|
docker compose up -d postgres
|
|
|
|
npm run start:dev
|
|
|
|
```
|
|
|
|
Para visualizar a documentação do backend, entrar em http://localhost:3000
|
|
|
|
|
|
|
|
**Terminal 2 — Frontend:**
|
|
|
|
```bash
|
|
|
|
cd AiProdutor-frontend
|
|
|
|
npm install # se ainda não instalou
|
|
|
|
npm run dev
|
|
|
|
```
|
|
|
|
Para visualizar o frontend, entrar em http://localhost:3001
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# ✅ Checklist Final
|
|
|
|
|
|
|
|
* [ ] Git instalado e configurado
|
|
|
|
* [ ] Node via nvm (`nvm use --lts`)
|
|
|
|
* [ ] Docker rodando
|
|
|
|
* [ ] Repositórios clonados (`backend` e `frontend`)
|
|
|
|
* [ ] Arquivos `.env` e `.env.local` criados
|
|
|
|
* [ ] Dependências instaladas (`npm install`)
|
|
|
|
* [ ] Banco de dados migrado / seed aplicado (opcional)
|
|
|
|
* [ ] Frontend acessível em http://localhost:3001
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## 🔗 Repositórios
|
|
|
|
|
|
|
|
* **Backend:** https://tools.ages.pucrs.br/ai-produtor-sistema-de-cadastro-e-gestao-de-produtores-de-hortifrutie/aiprodutor-backend.git
|
|
|
|
* **Frontend:** https://tools.ages.pucrs.br/ai-produtor-sistema-de-cadastro-e-gestao-de-produtores-de-hortifrutie/aiprodutor-frontend.git |