Compare commits
3 Commits
d467e3dade
...
b4c6bb4ba1
| Author | SHA1 | Date | |
|---|---|---|---|
| b4c6bb4ba1 | |||
| 310ab6b8f2 | |||
| c854086e69 |
17
.env.example
Normal file
17
.env.example
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Deploy (docker-compose) environment variables
|
||||||
|
|
||||||
|
# Postgres (used by postgres service)
|
||||||
|
POSTGRES_USER=omnichannel
|
||||||
|
POSTGRES_PASSWORD=change-me
|
||||||
|
POSTGRES_DB=omnichannel
|
||||||
|
|
||||||
|
# App database connection (used by backend)
|
||||||
|
DB_HOST=postgres
|
||||||
|
DB_PORT=5432
|
||||||
|
DB_USER=omnichannel
|
||||||
|
DB_PASSWORD=change-me
|
||||||
|
DB_NAME=omnichannel
|
||||||
|
|
||||||
|
# Ports (optional, if you want to reference in compose later)
|
||||||
|
FRONTEND_PORT=3000
|
||||||
|
BACKEND_PORT=3001
|
||||||
92
README.md
92
README.md
@ -1,89 +1,29 @@
|
|||||||
# Omnichannel Sothis
|
# Omnichannel Sothis - Deploy
|
||||||
|
|
||||||
Protótipo visual do frontend MVP do sistema Omnichannel da Sothis.
|
Este repositorio e o **deploy** do ecossistema. Ele **nao** contem o codigo do frontend nem do backend em producao. Esses dois sao repositorios separados e devem ser clonados ao lado deste deploy para subir o ambiente completo.
|
||||||
|
|
||||||
O foco desta versão é apresentação de produto: a aplicação simula fluxos reais de atendimento com dados mockados, UX moderna e navegação entre telas principais.
|
## Estrutura esperada (3 repositorios)
|
||||||
|
|
||||||
## O que existe hoje
|
- `deploy/` (este repo): `docker-compose.yml`, `database/`, `.gitignore`, `README.md`
|
||||||
|
- `frontend/`: interface do produto
|
||||||
|
- `backend/`: API e regras de negocio
|
||||||
|
|
||||||
- Frontend em React + Vite dentro de `frontend/`
|
## Como subir tudo localmente
|
||||||
- Docker Compose na raiz para subir o frontend desta apresentação
|
|
||||||
- Telas implementadas:
|
|
||||||
- Login
|
|
||||||
- Home / Dashboard
|
|
||||||
- Chat
|
|
||||||
- Call / Softphone mock
|
|
||||||
- Novo Atendimento
|
|
||||||
|
|
||||||
## Estrutura esperada do ecossistema
|
Passo a passo (na mesma pasta raiz):
|
||||||
|
|
||||||
Hoje este repositório cobre o frontend e um `docker-compose.yml` local para desenvolvimento/apresentação.
|
1. Clonar o repo de deploy na raiz (.)
|
||||||
|
2. Clonar o repo de frontend na pasta `frontend`
|
||||||
Para rodar o ambiente completo no futuro, a separação esperada é:
|
3. Clonar o repo de backend na pasta `backend`
|
||||||
|
4. Subir tudo:
|
||||||
- `frontend`: interface do produto
|
|
||||||
- `backend`: API e regras de negócio
|
|
||||||
- `deploy`: repositório raiz de infraestrutura/orquestração, onde ficará o `docker-compose` final com frontend, backend, banco e demais serviços
|
|
||||||
|
|
||||||
## Como rodar somente o frontend
|
|
||||||
|
|
||||||
### Opção 1: com Docker
|
|
||||||
|
|
||||||
Na raiz deste projeto:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose up -d --build
|
docker compose up -d --build
|
||||||
```
|
```
|
||||||
|
|
||||||
Depois acesse:
|
Isso sobe `frontend`, `backend` e `database` em uma unica operacao.
|
||||||
|
|
||||||
```text
|
## Observacoes
|
||||||
http://localhost:3000
|
|
||||||
```
|
|
||||||
|
|
||||||
### Opção 2: com Node local
|
- O `docker-compose.yml` deste repo espera `frontend/` e `backend/` presentes na mesma raiz.
|
||||||
|
- Em producao, o fluxo pode mudar para imagens pre-buildadas, mas para desenvolvimento local esta estrutura funciona bem.
|
||||||
Entre na pasta do frontend:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd frontend
|
|
||||||
npm install
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Depois acesse:
|
|
||||||
|
|
||||||
```text
|
|
||||||
http://localhost:3000
|
|
||||||
```
|
|
||||||
|
|
||||||
## Como gerar build do frontend
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd frontend
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
## Para rodar o ambiente completo
|
|
||||||
|
|
||||||
Quando a solução estiver separada em múltiplos repositórios, o fluxo esperado será:
|
|
||||||
|
|
||||||
1. Fazer `pull` do repositório `frontend`
|
|
||||||
2. Fazer `pull` do repositório `backend`
|
|
||||||
3. Fazer `pull` do repositório `deploy`
|
|
||||||
4. Entrar no repositório `deploy` (raiz de infraestrutura)
|
|
||||||
5. Subir tudo com:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker compose up -d --build
|
|
||||||
```
|
|
||||||
|
|
||||||
Em outras palavras: o `docker compose` definitivo do ambiente completo deve ser executado a partir do repositório `deploy`, que será a raiz de orquestração.
|
|
||||||
|
|
||||||
## Documentação
|
|
||||||
|
|
||||||
A documentação funcional do frontend está em [`frontend/docs`](./frontend/docs):
|
|
||||||
|
|
||||||
- visão geral do projeto
|
|
||||||
- documentação por módulo/tela
|
|
||||||
- documentação em formato narrativo/RPG para explicar os casos de uso
|
|
||||||
|
|||||||
0
database/Dockerfile
Normal file
0
database/Dockerfile
Normal file
0
database/init/001.schema.sql
Normal file
0
database/init/001.schema.sql
Normal file
1
deploy-dev.bat
Normal file
1
deploy-dev.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh desenvolvimento@10.0.120.75 -p 60000 "/home/desenvolvimento/scripts/deploy-omnichannel-dev.sh"
|
||||||
@ -4,4 +4,35 @@ services:
|
|||||||
context: ./frontend
|
context: ./frontend
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "4000:3000"
|
||||||
|
|
||||||
|
backend:
|
||||||
|
build:
|
||||||
|
context: ./backend
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
ports:
|
||||||
|
- "4001:3001"
|
||||||
|
env_file:
|
||||||
|
- .env.development
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres:16-alpine
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- .env.development
|
||||||
|
ports:
|
||||||
|
- "5434:5432"
|
||||||
|
volumes:
|
||||||
|
- pgdata:/var/lib/postgresql/data
|
||||||
|
- ./database/init:/docker-entrypoint-initdb.d
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pgdata:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user