O Podcast Manager é um aplicativo ao estilo Netflix, onde você pode centralizar diferentes episódios de podcasts separados por categorias. Ideal para organizar e assistir seus podcasts favoritos de vídeo.
Projeto de WebApi utilizando Nodejs, Typescript e bibliotecas nativas do Node, sem utilização de framework.
O foco do projeto, foi na criação de um servidor e como servir os dados, porém a destaque na arquitetura de camadas que o projeto foi desenvolvido, utilização de boas práticas e clareza do código.
- Listar os episódios de podcasts em seções de categorias
- Categorias: saúde, bodybuilder, mentalidade, humor
- Filtrar episódios por nome de Podcast
Este projeto utiliza as seguintes tecnologias:
- Node.js: Plataforma de execução de JavaScript no servidor.
- TypeScript: Um superconjunto de JavaScript que adiciona tipagem estática.
- tsx: Um executor TypeScript rápido e moderno.
- tsup: Um empacotador de código TypeScript para JavaScript.
Endpoint:
GET /api/episodes
Response:
[
{
"podcastName": "flow",
"episode": "IGORFINA - Extra Flow",
"videoId": "vhykXU7PPVc",
"category": ["humor", "bodybuilder"]
},
{
"podcastName": "flow",
"episode": "MC LAN - Flow #358",
"videoId": "gMVFtfY6NRs",
"category": ["humor", "música"]
}
]- Criar um endpoint GET
/api/episodesque retorna a lista de episódios de podcasts. - A resposta será uma lista de objetos, onde cada objeto representa um episódio de podcast com os seguintes campos:
podcastName: Nome do podcastepisode: Título do episódiovideoId: ID do vídeocategory: Lista de categorias às quais o episódio pertence
Endpoint:
GET /api/episodes?name={podcastName}
Descrição:
Este endpoint retorna a lista de episódios baseado em um parâmetro enviado pelo cliente do nome do podcast.
Exemplo de Uso:
Para buscar episódios do podcast "flow":
GET /api/episodes?p=flow
Response:
[
{
"podcastName": "flow",
"episode": "IGORFINA - Extra Flow",
"videoId": "vhykXU7PPVc",
"category": ["humor", "bodybuilder"]
},
{
"podcastName": "flow",
"episode": "MC LAN - Flow #358",
"videoId": "gMVFtfY6NRs",
"category": ["humor", "música"]
}
]Para inicializar o projeto, siga os passos abaixo:
- Clone o repositório:
git clone https://github.com/seu-usuario/projeto_app_podcast.git
- Navegue até o diretório do projeto:
cd projeto_app_podcast - Instale as dependências:
npm install
-
Desenvolvimento:
npm run start:dev
Este script inicia o servidor em ambiente de desenvolvimento usando
tsx. -
Desenvolvimento com Watch:
npm run start:watch
Este script inicia o servidor em ambiente de desenvolvimento com watch mode usando
tsx. -
Construção para Produção:
npm run dist
Este script compila o código TypeScript para JavaScript usando
tsup. -
Iniciar em Produção:
npm run start:dist
Este script compila o código e inicia o servidor usando o código compilado.
Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request.