Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/williangiacomelli/investtrack-api
https://github.com/williangiacomelli/investtrack-api
dotenv express mysql-database nodejs prisma-orm
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/williangiacomelli/investtrack-api
- Owner: WillianGiacomelli
- License: mit
- Created: 2024-12-18T02:42:04.000Z (8 days ago)
- Default Branch: main
- Last Pushed: 2024-12-18T02:53:53.000Z (8 days ago)
- Last Synced: 2024-12-18T03:27:55.962Z (8 days ago)
- Topics: dotenv, express, mysql-database, nodejs, prisma-orm
- Language: TypeScript
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# InvestTrack API
Este projeto é uma API para gerenciar investimentos, transações e usuários. A API foi desenvolvida usando Node.js, Prisma ORM e MySQL.
A apresentação dos dados pode ser vista na camada de visualização que está no seguinte repositório:```bash
https://github.com/WillianGiacomelli/InvestTrack-WebUI
```## Tecnologias Utilizadas
- **Node.js**: Ambiente de execução JavaScript.
- **Prisma**: ORM para interagir com o banco de dados.
- **MySQL**: Banco de dados relacional.
- **Express**: Framework para construir a API REST.
- **dotenv**: Gerenciamento de variáveis de ambiente.## Requisitos
- **Node.js** instalado. (Versão recomendada: 18.x ou superior)
- **MySQL** instalado e rodando.
- **Prisma** instalado globalmente (ou use o `npx`).## Passos para Configuração e Execução
### 1. Clonar o Repositório
Clone o repositório em sua máquina local:
```bash
git clone https://github.com/WillianGiacomelli/InvestTrack-API
cd InvestTrack
```### 2. Instalar Dependências
Instale as dependências do projeto:
```bash
npm install
```Isso irá instalar todas as bibliotecas necessárias, incluindo o Prisma e o Express.
### 3. Configurar o Banco de Dados
#### Criar o Banco de Dados no MySQL
#### Configurar Variáveis de Ambiente
Edite o arquivo `.env-example` na raiz do projeto e configure suas variáveis de ambiente. Exemplo:
```env
DATABASE_URL="mysql://usuario:senha@localhost:3306/investtrack"
```Substitua `usuario` e `senha` pelos valores corretos de acesso ao seu banco de dados MySQL.
### 4. Gerar o Prisma Client
Regenerar o Prisma Client para refletir as alterações no schema (modelos de dados):
```bash
npx prisma generate
```### 5. Rodar as Migrations
Para aplicar as migrações e criar as tabelas no banco de dados, execute:
```bash
npx prisma migrate dev --name init
```Isso irá aplicar todas as migrações e sincronizar o banco de dados com o seu esquema.
### 6. Rodar a API
Inicie o servidor da API:
```bash
npm start
```Ou, se você estiver usando o `nodemon` para desenvolvimento, pode rodar:
```bash
npm run dev
```A API estará disponível em `http://localhost:3000`.
### 7. Testar a API
Você pode testar a API com ferramentas como **Postman** ou **Insomnia**, fazendo chamadas HTTP aos endpoints disponíveis.
## Comandos Úteis
- **Gerar Prisma Client**: Regenera o Prisma Client após alterações no schema.
```bash
npx prisma generate
```- **Rodar Migrations**: Aplica migrações no banco de dados.
```bash
npx prisma migrate dev --name
```- **Acessar o Banco de Dados com Prisma Studio**: Interface gráfica para visualizar dados.
```bash
npx prisma studio
```## Estrutura de Diretórios
A estrutura do projeto segue o padrão comum para uma API em Node.js com Prisma.
```
InvestTrack/
│
├── prisma/
│ ├── schema.prisma # Esquema do Prisma (modelos de dados)
│ └── migrations/ # Migrações do Prisma
│
├── src/ # Código fonte da aplicação
│ ├── controllers/ # Controladores da API
│ ├── services/ # Lógica de negócios
│ ├── routes/ # Definição das rotas
│ └── app.ts # Arquivo principal da aplicação
│
├── .env # Variáveis de ambiente
├── package.json # Dependências e scripts
├── tsconfig.json # Configuração do TypeScript
└── README.md # Este arquivo
```## Contribuindo
1. Faça o **fork** do repositório.
2. Crie uma nova **branch** (`git checkout -b feature/alguma-coisa`).
3. Faça suas alterações e **commite** (`git commit -am 'Adicionando uma nova feature'`).
4. **Push** para sua branch (`git push origin feature/alguma-coisa`).
5. Abra um **pull request**.## Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.