{"id":13550653,"url":"https://github.com/iquabius/olimat","last_synced_at":"2025-04-03T00:34:30.415Z","repository":{"id":39060130,"uuid":"88462818","full_name":"iquabius/olimat","owner":"iquabius","description":"Aplicação Web das Olimpíadas de Matemática da UNEMAT","archived":false,"fork":false,"pushed_at":"2025-02-22T21:24:53.000Z","size":12664,"stargazers_count":7,"open_issues_count":43,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-22T22:23:54.141Z","etag":null,"topics":["material-ui","nextjs","nodejs","prisma","react-apollo","reactjs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iquabius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-17T03:10:21.000Z","updated_at":"2023-03-10T10:40:57.000Z","dependencies_parsed_at":"2023-10-11T02:01:34.853Z","dependency_job_id":"f1daf3f0-99aa-42c1-9d71-d1f12b42c393","html_url":"https://github.com/iquabius/olimat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iquabius%2Folimat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iquabius%2Folimat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iquabius%2Folimat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iquabius%2Folimat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iquabius","download_url":"https://codeload.github.com/iquabius/olimat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246916734,"owners_count":20854511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["material-ui","nextjs","nodejs","prisma","react-apollo","reactjs"],"created_at":"2024-08-01T12:01:35.818Z","updated_at":"2025-04-03T00:34:25.401Z","avatar_url":"https://github.com/iquabius.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\" style=\"color:RoyalBlue\"\u003eOliMAT\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\nUma aplicação web de código aberto para as Olimpíadas de Matemática da [UNEMAT](http://portal.unemat.br).\n\n[![CircleCI](https://circleci.com/gh/iquabius/olimat/tree/master.svg?style=svg)](https://circleci.com/gh/iquabius/olimat/tree/master)\n[![Codecov Coverage](https://img.shields.io/codecov/c/github/iquabius/olimat/master.svg?style=flat\u0026logo=Codecov)](https://codecov.io/gh/iquabius/olimat/)\n[![Cypress.io tests](https://img.shields.io/badge/cypress.io-tests-green.svg?style=flat)](https://cypress.io)\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-brightgreen.svg)](https://www.gnu.org/licenses/agpl-3.0)\n![Code style](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)\n[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/)\n\n\u003c/div\u003e\n\n## Desenvolvimento local\n\n### Pré-requisitos\n\nPra rodar esse projeto, é necessário instalar:\n\n- Node.js versão 10.0\n- [Docker](https://docs.docker.com/install/)\n- [Docker Compose](https://docs.docker.com/compose/)\n\n### 1. Baixe a aplicação e instale as dependências\n\nClone o repositório para o seu computador:\n\n```bash\ngit clone https://github.com/iquabius/olimat.git\n```\n\nInstale as dependências do monorepositório:\n\n```bash\ncd olimat\nnpm install\n```\n\nInstale as dependências da API e do *frontend*:\n\n```bash\nnpx lerna bootstrap\n```\n\n### 2. Levante o serviço de banco de dados do Prisma\n\nLevante os serviços *prisma* e *postgres* definidos em `api/docker-compose.yml`:\n\n```bash\ncd ../api\ndocker-compose up -d\n```\n\nO Prisma agora está conectado ao banco de dados e roda em `http://localhost:4466`.\nEle é utilizado pelo servidor GraphQL para ler e escrever no BD.\n\nPara criar as tabelas no BD, implante a API do Prisma definida em `api/prisma/datamodel.graphql`:\n\n```bash\nnpx prisma deploy\n```\n\n\u003e 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`](api/prisma/seed/seed.ts) para semear o banco com dados iniciais. Ele sabe desse script porque está listado em [`api/prisma/prisma.yml`](api/prisma/prisma.yml) na propriedade `seed`.\n\n### 3. Inicie o servidor GraphQL\n\nAgora que o serviço de banco de dados do Prisma está disponível, podemos iniciar\no servidor:\n\n```bash\nnpm run dev\n```\n\nO script `dev` inicia o servidor em [`http://localhost:4000/graphql`](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.\n\n### 4. Inicie o *frontend*\n\nInicia a aplicação em [`http://localhost:3000`](http://localhost:3000):\n\n```bash\ncd ../web\nnpm run dev\n```\n\n### 5. Abra o repositório no VS Code\n\nEsse repositório está configurado pra funcionar como um [espaço de trabalho multi-raiz do Visual Studio Code](https://code.visualstudio.com/docs/editor/multi-root-workspaces).\nIsso garante o funcionamento correto de algumas integrações, como o a extensão\n[Apollo GraphQL](https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo). Há duas formas de abrir esse repositório como um espaço de trabalho:\n\nSe abrir esse projeto como pasta, um aviso aparecerá no canto inferior direito:\n\n\u003e This folder contains a workspace file 'olimat.code-workspace'. Do you want to open it? [Learn more](https://code.visualstudio.com/docs/editor/multi-root-workspaces) about workspace files.\n\nClique em 'Open Workspace' para abrir o projeto como espaço de trabalho.\n\nPara abrir a espaço de trabalho diretamente, abra o VS Code, clique em `File -\u003e Open Workspace`, navegue até o diretório do projeto e selecione o arquivo `olimat.code-workspace`.\n\n\n## Gerenciamento do Monorepo com Lerna\n\nPara adicionar ou remover dependências:\n\n1. adicione ou remova manualmente em package.json\n2. remova o diretório `node_modules`\n3. e execute:\n\n```bash\n$ lerna bootstrap --scope @org-name/package-name --no-ci --force-local\n```\n\nFonte: https://github.com/lerna/lerna/issues/1886#issuecomment-531545220\n\n## Licença\n\n[AGPL-3.0](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiquabius%2Folimat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiquabius%2Folimat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiquabius%2Folimat/lists"}