Skip to main content

Build de Produção

Produção

Para rodar o projeto em produção, são necessários dois arquivos de ambiente. O primeiro deles deve ser colocado na pasta raiz do projeto com o nome .env e o segundo deve ser colocado dentro da pasta /eclipse como nome .env.production

A falta de um desses arquivos de ambiente por acarretar em erros inesperados de build do docker!


.env: 

# 🌐 API
API_PORT=3008

# 🛢️ MongoDB
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=admin123
MONGO_INITDB_DATABASE=eclipse-db-deploy
CONNECTION_STRING=mongodb://root:admin123@eclipse-db-deploy:27017/eclipse?authSource=admin

# 🔐 Segurança
JWT_SECRET=secret
NEXTAUTH_SECRET=secret

# 🌐 CORS
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173,http://localhost:80,http://localhost,http://eclipse-api,http://eclipse-api-deploy:5173

# 💻 Next.js
NEXT_PUBLIC_APP_VERSION=3.1.05.25
NEXT_PUBLIC_API_URL=http://localhost:3008/api/v1
NEXTAUTH_URL=http://localhost

# 👮 Admin Inicial
BASE_ADMIN_PASSWORD=admin123
[email protected]

# ✉️ E-mail
[email protected]
PASSWORD_USER=senha-gerada

# ⚙️ Ambiente
NODE_ENV=production

.env.production: 

 
# 🌐 API
API_PORT=3008

# 🛢️ MongoDB
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=admin123
MONGO_INITDB_DATABASE=eclipse-db-deploy
CONNECTION_STRING=mongodb://root:admin123@eclipse-db-deploy:27017/eclipse?authSource=admin

# 🔐 Segurança
JWT_SECRET=secret
NEXTAUTH_SECRET=secret

# 🌐 CORS
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173,http://localhost:80,http://localhost,http://eclipse-api,http://eclipse-api-deploy:5173

# 💻 Next.js
NEXT_PUBLIC_APP_VERSION=3.1.05.25
NEXT_PUBLIC_API_URL=http://localhost/api/v1
NEXTAUTH_URL=http://localhost

# 👮 Admin Inicial
BASE_ADMIN_PASSWORD=senha
[email protected]

# ✉️ E-mail
[email protected]
PASSWORD_USER=senha-gerada

# ⚙️ Ambiente
NODE_ENV=production

Saída Esperada:

Código: 12345, Nome: Computador, Categoria: Equipamento de Informática, Data de Aquisição: 2022-01-10, Valor: 5000.0


2. Movimentação de Bens

Outro aspecto fundamental do controle patrimonial é o registro das movimentações dos bens, como transferências entre departamentos ou unidades da empresa. O código a seguir exemplifica como isso pode ser feito:

class Movimentacao:
    def __init__(self, bem, data_movimentacao, origem, destino):
        self.bem = bem
        self.data_movimentacao = data_movimentacao
        self.origem = origem
        self.destino = destino

    def registrar_movimentacao(self):
        return f'Movimento do bem {self.bem.nome} de {self.origem} para {self.destino} em {self.data_movimentacao}.'

# Exemplo de movimentação
mov1 = Movimentacao(bem1, "2025-03-10", "Departamento de TI", "Departamento de Marketing")
print(mov1.registrar_movimentacao())

Saída Esperada:

Movimento do bem Computador de Departamento de TI para Departamento de Marketing em 2025-03-10.


3. Relatório de Bens

A geração de relatórios é uma funcionalidade crucial para acompanhar o estado do patrimônio. Este módulo pode permitir a criação de relatórios sobre bens ativos, bens em manutenção, bens fora de uso, entre outros. Um exemplo simples de relatório seria:

class RelatorioPatrimonial:
    def __init__(self, bens):
        self.bens = bens

    def gerar_relatorio(self):
        relatorio = "Relatório de Bens Patrimoniais:\n"
        for bem in self.bens:
            relatorio += bem.exibir_dados() + "\n"
        return relatorio

# Exemplo de geração de relatório
bens = [bem1]
relatorio = RelatorioPatrimonial(bens)
print(relatorio.gerar_relatorio())

Saída Esperada:

Relatório de Bens Patrimoniais:
Código: 12345, Nome: Computador, Categoria: Equipamento de Informática, Data de Aquisição: 2022-01-10, Valor: 5000.0


4. Manutenção de Bens

Além de controlar a movimentação dos bens, é importante gerenciar as manutenções realizadas, registrando as datas e tipos de manutenção. O código abaixo exemplifica como implementar esse registro:

class Manutencao:
    def __init__(self, bem, tipo_manutencao, data_manutencao):
        self.bem = bem
        self.tipo_manutencao = tipo_manutencao
        self.data_manutencao = data_manutencao

    def registrar_manutencao(self):
        return f'Manutenção do bem {self.bem.nome} do tipo {self.tipo_manutencao} realizada em {self.data_manutencao}.'

# Exemplo de manutenção
manutencao1 = Manutencao(bem1, "Preventiva", "2025-02-28")
print(manutencao1.registrar_manutencao())

Saída Esperada:

Manutenção do bem Computador do tipo Preventiva realizada em 2025-02-28.


Conclusão

Este é um exemplo básico de como o software de controle patrimonial pode ser estruturado. A implementação completa envolve mais funcionalidades, como o controle de acesso dos usuários, a integração com outros sistemas e a geração de relatórios detalhados. As funcionalidades apresentadas garantem um controle eficiente dos bens patrimoniais, proporcionando à empresa um gerenciamento preciso e organizado de seus ativos.


chatbox.png

e