Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brunohnsouza/student-scheduling-api
Gerencie informações de alunos em uma API educacional: nomes, idades, notas, professores e salas.
https://github.com/brunohnsouza/student-scheduling-api
api express nodejs prisma-orm swagger
Last synced: 1 day ago
JSON representation
Gerencie informações de alunos em uma API educacional: nomes, idades, notas, professores e salas.
- Host: GitHub
- URL: https://github.com/brunohnsouza/student-scheduling-api
- Owner: brunohnsouza
- Created: 2023-10-30T20:36:02.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-03T19:37:16.000Z (7 months ago)
- Last Synced: 2024-04-03T20:42:16.467Z (7 months ago)
- Topics: api, express, nodejs, prisma-orm, swagger
- Language: JavaScript
- Homepage: https://school-api-rbyx.onrender.com/api-docs/
- Size: 51.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# School API
A School API oferece acesso a recursos para armazenar, recuperar, atualizar e excluir informações sobre alunos em uma instituição educacional. Você poderá interagir com detalhes de alunos, como nome, idade, notas semestrais, nome do professor e número da sala.
## Índice
- [Requisitos](#requisitos)
- [Instalação](#instalação)
- [Configuração](#configuração)
- [Endpoints](#endpoints)
- [Licença](#licença)## Requisitos
- [Node.js](https://nodejs.org/) v18 (ou posterior)
- Dependências:
- [Nodemon](https://www.npmjs.com/package/nodemon) - ^3.0.1
- [Prisma](https://www.npmjs.com/package/prisma) - ^5.5.1
- [Sucrase](https://www.npmjs.com/package/sucrase) - ^3.34.0
- [@prisma/client](https://www.npmjs.com/package/@prisma/client) - ^5.5.2
- [Cors](https://www.npmjs.com/package/cors) - ^2.8.5
- [Express](https://www.npmjs.com/package/express) - ^4.18.2
- [Swagger UI Express](https://www.npmjs.com/package/swagger-ui-express) - ^5.0.0## Instalação
Siga as etapas abaixo para configurar e instalar a API em seu ambiente local:
1. Clone o repositório e acesse o diretório:
```bash
git clone [email protected]:brunohnsouza/student-scheduling-api.git
cd student-scheduling-api
```2. Instale as dependências do projeto usando o `Node Package Manager (NPM)`:
```bash
npm install
```3. Inicie o servidor em modo de desenvolvimento usando Nodemon (isso recarrega automaticamente o servidor quando você faz alterações no código):
```bash
npm run dev
```A API estará acessível em `http://localhost:3333`.
## Configuração
A configuração do banco de dados depende do ambiente em que você está executando a API.
### Ambiente local (SQLite)
1. Substitua o `datasource` no arquivo `schema.prisma` pelo seguinte:
```prisma
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
```2. Exclua o diretório `migrations` e o arquivo `dev.db`
3. Execute o seguinte comando:
```bash
npx prisma migrate dev
```4. Escreva o nome da sua nova migration como, por exemplo, `create-table-student`
5. Teste com o seguinte comando:
```bash
npx prisma studio
```### Ambiente de produção
Você pode escolher entre vários bancos de dados, como PostgreSQL, MySQL, MongoDB e outros. Siga estas etapas:
1. Exclua o diretório `migrations` e o arquivo `dev.db`
2. Crie um arquivo `.env` na raiz do projeto
3. Adicione a variável de ambiente `DATABASE_URL` com a conexão do banco de dados em produção
4. Execute o seguinte comando:
```bash
npx prisma migrate dev
```5. Escreva o nome da sua nova migration como, por exemplo, `create-table-student` e confirme
6. Teste com o seguinte comando:
```bash
npx prisma studio
```Para mais informações, consulte a [documentação do Prisma](https://www.prisma.io/docs/concepts).
## Endpoints
Principais endpoints da API, com informações sobre seus métodos HTTP, descrição, parâmetros, exemplos de solicitações e exemplos de respostas.
| Endpoint | Método | Descrição | Parâmetros | Exemplo de Solicitação | Exemplo de Resposta |
| ------------ | ------ | --------------------- | ---------- | ---------------------- | --------------------- |
| /students | GET | Obtém todos os alunos | - | GET /students | Status 200 OK, [JSON] |
| /students:id | GET | Obtém um aluno por ID | id | GET /students:id | Status 200 OK, [JSON] |
| /student | POST | Cria um novo aluno | JSON | POST /api/recurso | Status 201 Created |
| /students:id | PUT | Atualiza um aluno | id | PUT /students:id | Status 200 OK |
| /students:id | DELETE | Exclui um aluno | id | DELETE /students:id | Status 200 OK, [JSON] |## Licença
[MIT](https://choosealicense.com/licenses/mit/)