Skip to content

EmillyAndradeDev/nodejs-typescript-webapi-without-frameworks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Podcast Manager 🎧

📌 Descrição

O Podcast Manager é uma aplicação backend desenvolvida em Node.js com TypeScript. Seu objetivo é organizar e gerenciar episódios de podcasts em vídeo por meio de uma API REST simples e escalável.

A API disponibiliza endpoints para:

  • Listar episódios em diferentes categorias

  • Filtrar episódios pelo nome do podcast

O projeto foi desenvolvido durante o bootcamp da DIO em parceria com a Meutudo.

💻 Tecnologias Utilizadas

Node.js TypeScript REST API

📚 Descrição das tecnologias

  • Node.js - ambiente de execução de JavaScript no servidor

  • TypeScript - superset do JavaScript com tipagem estática

  • TSX - ferramenta para rodar arquivos TypeScript diretamente

  • Tsup - empacotador (bundler) para construir o projeto

  • @types/node - definições de tipos para Node.js

📂 Estrutura de Pastas

projeto-gerenciador-de-podcasts/
│
├── docs/                 
│   └── arch/             # diagramas e documentação (TL Draw + app.md)
│
├── src/                  
│   ├── controllers/      # lógica das rotas e gerenciamento request/response
│   ├── models/           # definições de tipos e modelos de dados
│   ├── repositories/     # camada de acesso a dados (JSON)
│   ├── routes/           # definições das rotas da API
│   ├── services/         # regras de negócio e funcionalidades principais
│   ├── utils/            # funções utilitárias e enums (HTTP methods, status code, content types)
│   ├── app.ts            # arquivo principal com lógica de roteamento da API
│   └── server.ts         # inicia o servidor HTTP
│
├── .env                  # variáveis de ambiente
├── tsconfig.json         # configuração do TypeScript
├── package.json          # dependências e scripts do projeto
└── README.md             # documentação do projeto


⚙️ 🚀 Features e Endpoints da API

🎯 Funcionalidades principais:

  • Listar episódios de podcasts por categoria

  • Filtrar episódios pelo nome do podcast

🔗 Endpoints

1️⃣ Listar todos os episódios
  • Método: GET

  • URL: /api/list

  • Descrição: Retorna todos os episódios de podcasts

  • Exemplo de resposta:

[
 {
   "podcastName": "NÃO IMPORTA | Porta dos Fundos",
   "episode": "ANIVERSÁRIO, TEXTÃO E OUTRAS COISAS | NÃO IMPORTA #07",
   "videoId": "Pe433N6crFc",
   "categories": ["humor", "mentalidade"]
 },
 {
   "podcastName": "Que História É Essa, Porchat? | GNT",
   "episode": "FRACASSO! 3 DATES PÉSSIMOS que marcaram o programa do Porchat",
   "videoId": "28lspUA5u0I",
   "categories": ["humor", "date"]
 }
]
2️⃣ Filtrar episódios pelo nome do podcast
  • Método: GET

  • URL: /api/podcasts?p=nome-do-podcast

  • Descrição: Retorna apenas os episódios cujo nome do podcast corresponda ao parâmetro enviado

  • Exemplo de uso: /api/podcasts?p=flow

  • Exemplo de resposta:

[
 {
   "podcastName": "flow",
   "episode": "Flow Podcast #123 - Felipão",
   "videoId": "28lspUA5u0I",
   "categories": ["humor", "mentalidade"]
 }
]

⚡ Como Rodar o Projeto

Pré-requisitos

  • Node.js instalado na sua máquina

  • NPM ou Yarn para instalar dependências

  • Variáveis de ambiente configuradas no arquivo .env (como a porta do servidor)

Passos para rodar

1️⃣ Clonar o repositório

git clone https://github.com/EmillyAndradeDev/nodejs-typescript-webapi-without-frameworks

cd projeto-gerenciador-de-podcasts

2️⃣ Instalar dependências

npm install
# ou
yarn install

3️⃣ Rodar em modo de desenvolvimento

npm run start:dev
  • Executa o projeto com TSX, usando o TypeScript diretamente

4️⃣ Rodar com watch mode (reinício automático ao salvar)

npm run star:watch

5️⃣ Gerar build com Tsup

npm run dist

6️⃣ Rodar build gerado

npm run star:dist

Observações

  • O servidor irá iniciar na porta configurada no .env

  • A API estará disponível nos endpoints /api/list e /api/podcasts?p=nome-do-podcast

About

Podcast episode filter backend (Node.js, TypeScript). Built as part of the Dio + meutudo bootcamp.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published