Skip to content

Aplicação Web das Olimpíadas de Matemática da UNEMAT

License

Notifications You must be signed in to change notification settings

iquabius/olimat

Repository files navigation

OliMAT

Uma aplicação web de código aberto para as Olimpíadas de Matemática da UNEMAT.

CircleCI Codecov Coverage Cypress.io tests License: AGPL v3 Code style lerna

Desenvolvimento local

Pré-requisitos

Pra rodar esse projeto, é necessário instalar:

1. Baixe a aplicação e instale as dependências

Clone o repositório para o seu computador:

git clone https://github.com/iquabius/olimat.git

Instale as dependências do monorepositório:

cd olimat
npm install

Instale as dependências da API e do frontend:

npx lerna bootstrap

2. Levante o serviço de banco de dados do Prisma

Levante os serviços prisma e postgres definidos em api/docker-compose.yml:

cd ../api
docker-compose up -d

O Prisma agora está conectado ao banco de dados e roda em http://localhost:4466. Ele é utilizado pelo servidor GraphQL para ler e escrever no BD.

Para criar as tabelas no BD, implante a API do Prisma definida em api/prisma/datamodel.graphql:

npx prisma deploy

Note que quando a implantação do serviço do Prisma é feita pela primeira vez, o comando irá executar o script api/prisma/seed/seed.ts para semear o banco com dados iniciais. Ele sabe desse script porque está listado em api/prisma/prisma.yml na propriedade seed.

3. Inicie o servidor GraphQL

Agora que o serviço de banco de dados do Prisma está disponível, podemos iniciar o servidor:

npm run dev

O script dev inicia o servidor em http://localhost:4000/graphql. Ele pode ser acessado pelo navegador através do GraphQL Playground, onde é possível explorar as operações disponíveis navegando pela documentação integrada.

4. Inicie o frontend

Inicia a aplicação em http://localhost:3000:

cd ../web
npm run dev

5. Abra o repositório no VS Code

Esse repositório está configurado pra funcionar como um espaço de trabalho multi-raiz do Visual Studio Code. Isso garante o funcionamento correto de algumas integrações, como o a extensão Apollo GraphQL. Há duas formas de abrir esse repositório como um espaço de trabalho:

Se abrir esse projeto como pasta, um aviso aparecerá no canto inferior direito:

This folder contains a workspace file 'olimat.code-workspace'. Do you want to open it? Learn more about workspace files.

Clique em 'Open Workspace' para abrir o projeto como espaço de trabalho.

Para abrir a espaço de trabalho diretamente, abra o VS Code, clique em File -> Open Workspace, navegue até o diretório do projeto e selecione o arquivo olimat.code-workspace.

Gerenciamento do Monorepo com Lerna

Para adicionar ou remover dependências:

  1. adicione ou remova manualmente em package.json
  2. remova o diretório node_modules
  3. e execute:
$ lerna bootstrap --scope @org-name/package-name --no-ci --force-local

Fonte: lerna/lerna#1886 (comment)

Licença

AGPL-3.0

About

Aplicação Web das Olimpíadas de Matemática da UNEMAT

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published