Claro! Aqui está um exemplo de um README bem documentado para o seu projeto.
Este projeto consiste em uma API de gerenciamento de alunos, construída com Node.js, Express, e MySQL. A API permite listar todos os alunos, obter detalhes de um aluno específico e adicionar novos alunos.
your-project/
├── node_modules/
├── public/
├── src/
│ ├── database.js
│ ├── index.js
│ └── .env
├── package.json
└── README.md
O projeto utiliza as seguintes dependências:
- express
- body-parser
- cors
- mysql2
- dotenv
Crie um arquivo .env
na raiz do projeto com as seguintes variáveis de ambiente:
MYSQL_IP=localhost
MYSQL_USER=root
MYSQL_ROOT_PASSWORD=yourpassword
MYSQL_DATABASE=yourdatabase
-
Clone o repositório:
git clone <URL_DO_REPOSITORIO> cd your-project
-
Instale as dependências:
npm install
-
Configure as variáveis de ambiente no arquivo
.env
conforme mostrado acima.
import mysql from 'mysql2';
import dotenv from 'dotenv';
dotenv.config();
const pool = mysql.createPool({
host: process.env.MYSQL_IP,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_ROOT_PASSWORD,
database: process.env.MYSQL_DATABASE,
}).promise();
export async function getAlunos() {
const result = await pool.query(`SELECT * FROM ALUNOS;`);
return result[0];
}
export async function getAluno(id) {
const result = await pool.query(`
SELECT *
FROM ALUNOS
WHERE id = ?;
`, [id]);
return result[0];
}
export async function createAluno(nome, idade, cidade) {
const result = await pool.query(`
INSERT INTO ALUNOS (nome, idade, cidade)
VALUES (?, ?, ?);
`, [nome, idade, cidade]);
const id = result[0].insertId;
return getAluno(id);
}
import express from "express";
import bodyParser from "body-parser";
import cors from "cors";
import { getAluno, getAlunos, createAluno } from './database.js';
const app = express();
app.use(bodyParser.json());
app.use(cors());
app.get("/alunos", async (req, res) => {
const alunos = await getAlunos();
res.send(alunos);
});
app.get("/aluno/:id", async (req, res) => {
const id = req.params.id;
const aluno = await getAluno(id);
res.send(aluno);
});
app.post("/alunos", async (req, res) => {
const { nome, idade, cidade } = req.body;
const aluno = await createAluno(nome, idade, cidade);
res.status(201).send(aluno);
});
app.listen(8080, () => {
console.log('O servidor está executando na porta 8080');
});
-
Certifique-se de que o MySQL está rodando e que o banco de dados especificado no
.env
está criado. -
Para iniciar o servidor, execute:
npm start
-
O servidor estará rodando na porta 8080. Você pode acessar os seguintes endpoints:
GET /alunos
: Retorna todos os alunos.GET /aluno/:id
: Retorna os detalhes de um aluno específico.POST /alunos
: Adiciona um novo aluno. Espera um JSON no corpo da requisição com os camposnome
,idade
, ecidade
.
curl -X GET http://localhost:8080/alunos
curl -X GET http://localhost:8080/aluno/1
curl -X POST http://localhost:8080/alunos -H "Content-Type: application/json" -d '{"nome":"João", "idade":27, "cidade":"Salvador"}'
Se você deseja contribuir com o projeto, por favor, siga as instruções abaixo:
- Faça um fork do projeto.
- Crie uma nova branch (
git checkout -b feature/nova-feature
). - Faça suas alterações e commite (
git commit -am 'Adiciona nova feature'
). - Envie para o branch (
git push origin feature/nova-feature
). - Abra um Pull Request.
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
Se você tiver alguma dúvida, sinta-se à vontade para abrir uma issue ou entrar em contato.