felipemcoliveira / Amamenta

Blog application developed using React, NestJS, MySQL, Sequelize, SASS and Semantic UI.

Home Page:https://www.amamenta.lapinf.ufn.edu.br/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

✨ amamentaufn

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.

Rodando a Aplicação

Para iniciar o projeto, clone o repositório:

git clone https://github.com/felipemcoliveira/amamentaufn.git

Entre no diretório do repositório local:

cd amamentaufn

Instale as dependência do projeto:

npm install

Gere 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 --workspaces

Entre no diretório do servidor:

cd server

Crie o arquivo .env na raíz do projeto:

# suporta outros arquivos como .env.production e .env.development
touch .env

Defina 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:sync

Crie 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_PERMISSIONS

Inicialize o servidor:

node dist/main.js

Pronto! A aplicação estará aguardando por requisições na porta definida.

About

Blog application developed using React, NestJS, MySQL, Sequelize, SASS and Semantic UI.

https://www.amamenta.lapinf.ufn.edu.br/


Languages

Language:JavaScript 56.1%Language:TypeScript 36.6%Language:SCSS 6.5%Language:HTML 0.8%