Uma aplicação web de código aberto para as Olimpíadas de Matemática da UNEMAT.
Pra rodar esse projeto, é necessário instalar:
- Node.js versão 10.0
- Docker
- Docker Compose
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
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 emapi/prisma/prisma.yml
na propriedadeseed
.
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.
Inicia a aplicação em http://localhost:3000
:
cd ../web
npm run dev
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
.
Para adicionar ou remover dependências:
- adicione ou remova manualmente em package.json
- remova o diretório
node_modules
- e execute:
$ lerna bootstrap --scope @org-name/package-name --no-ci --force-local
Fonte: lerna/lerna#1886 (comment)