Este repositório contem a minha contribuição para o Projeto Amamenta (Laboratório Avançado de Produtos do Mestrado em Saúde Materno Infantil) onde fui encarregado de desenvolver o blog que serve para que os demais contribuintes possuam um ambiente para a publicação e gerenciamento de artigos como objetivo de auxiliar às mães na orientação das melhores práticas de amamentação. Além do blog um painel foi desenvolvido para que os responsáveis do projeto possam gerenciar os recursos da aplicação.
Para iniciar o projeto, clone o repositório:
git clone https://github.com/felipemcoliveira/amamentaufn.gitEntre no diretório do repositório local:
cd amamentaufnInstale as dependência do projeto:
npm installGere a build de todos os workspaces:
# um erro sera causado pelo workspace client/core por conta
# da ausência de um script de build, basta ignora-ló
npm run build --workspacesEntre no diretório do servidor:
cd serverCrie o arquivo .env na raíz do projeto:
# suporta outros arquivos como .env.production e .env.development
touch .envDefina as seguintes variavéis de ambientes no arquivo criado:
# ----------------------------------------------------------------------------
# Servidor
# ----------------------------------------------------------------------------
# porta onde o servidor vai aguardar requisições
HTTP_PORT=
# ----------------------------------------------------------------------------
# Banco de dados
# ----------------------------------------------------------------------------
# host do banco de dados
DATABASE_HOST=
# usuário do banco de dados
DATABASE_USER=
# senha do usuário do banco
DATABASE_PASSWORD=
# porta do banco de dados
DATABASE_PORT=
# nome do banco de dados criado para a aplicação
DATABASE_NAME=
# ----------------------------------------------------------------------------
# Json Web Token (JWT)
# ----------------------------------------------------------------------------
# deve ter pelo menos 32 carctérios. quanto maior melhor, melhor
JWT_SECRET=
# tempo em segundos para o jwt expirar
JWT_EXPIRESIN=Sincronize o banco de dados, este comando deve criar todas as tabelas no banco e criar as permissões necessária para o sistema funcionar. Por conta do prazo de entrega e por se tratar de um banco com previsões de alteração, não foi utilizado migrations e seeders (me perdoem devs 😔):
node dist/main-cli db:syncCrie um usuário para gerenciar o sistema:
# com apenas a permissão de CAN_MANAGE_USER_PERMISSIONS o usuário já é capaz de adicionar as demais.
# para adicionar mais de uma permissão use aspás e vírgula. (ex.: "CAN_MANAGE_ANY_POSTS, CAN_MANAGE_USERS")
node dist/main-cli user:create <email> <password> <firstName> <lastName> --permissions CAN_MANAGE_USER_PERMISSIONSInicialize o servidor:
node dist/main.jsPronto! A aplicação estará aguardando por requisições na porta definida.

