Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iquabius/olimat
Aplicação Web das Olimpíadas de Matemática da UNEMAT
https://github.com/iquabius/olimat
material-ui nextjs nodejs prisma react-apollo reactjs
Last synced: about 2 months ago
JSON representation
Aplicação Web das Olimpíadas de Matemática da UNEMAT
- Host: GitHub
- URL: https://github.com/iquabius/olimat
- Owner: iquabius
- License: agpl-3.0
- Created: 2017-04-17T03:10:21.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-07-31T15:16:26.000Z (about 2 months ago)
- Last Synced: 2024-07-31T17:50:02.444Z (about 2 months ago)
- Topics: material-ui, nextjs, nodejs, prisma, react-apollo, reactjs
- Language: TypeScript
- Homepage:
- Size: 12 MB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
OliMAT
Uma aplicação web de código aberto para as Olimpíadas de Matemática da [UNEMAT](http://portal.unemat.br).
[![CircleCI](https://circleci.com/gh/iquabius/olimat/tree/master.svg?style=svg)](https://circleci.com/gh/iquabius/olimat/tree/master)
[![Codecov Coverage](https://img.shields.io/codecov/c/github/iquabius/olimat/master.svg?style=flat&logo=Codecov)](https://codecov.io/gh/iquabius/olimat/)
[![Cypress.io tests](https://img.shields.io/badge/cypress.io-tests-green.svg?style=flat)](https://cypress.io)
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-brightgreen.svg)](https://www.gnu.org/licenses/agpl-3.0)
![Code style](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/)## Desenvolvimento local
### Pré-requisitos
Pra rodar esse projeto, é necessário instalar:
- Node.js versão 10.0
- [Docker](https://docs.docker.com/install/)
- [Docker Compose](https://docs.docker.com/compose/)### 1. Baixe a aplicação e instale as dependências
Clone o repositório para o seu computador:
```bash
git clone https://github.com/iquabius/olimat.git
```Instale as dependências do monorepositório:
```bash
cd olimat
npm install
```Instale as dependências da API e do *frontend*:
```bash
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`:
```bash
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`:
```bash
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`](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`.
### 3. Inicie o servidor GraphQL
Agora que o serviço de banco de dados do Prisma está disponível, podemos iniciar
o servidor:```bash
npm run dev
```O 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.
### 4. Inicie o *frontend*
Inicia a aplicação em [`http://localhost:3000`](http://localhost:3000):
```bash
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](https://code.visualstudio.com/docs/editor/multi-root-workspaces).
Isso garante o funcionamento correto de algumas integrações, como o a extensão
[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: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](https://code.visualstudio.com/docs/editor/multi-root-workspaces) 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:```bash
$ lerna bootstrap --scope @org-name/package-name --no-ci --force-local
```Fonte: https://github.com/lerna/lerna/issues/1886#issuecomment-531545220
## Licença
[AGPL-3.0](./LICENSE)