Coder Social home page Coder Social logo

murilo-mrs / trybe-blog-api Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 327 KB

Neste projeto desenvolvi uma API e um banco de dados para a produção de conteúdo para um blog!

Shell 0.92% Dockerfile 0.20% JavaScript 98.88%
docker-compose express javascript jwt-authentication msc-architecture mysql-database nodejs sequelize-orm

trybe-blog-api's Introduction

Projeto Blog API

Projeto realizado durante módulo de Back-end do curso de desenvolvimento web da Trybe.

O que foi feito

Neste projeto desenvolvi uma API e um banco de dados para a produção de conteúdo para um blog! Para acessar rotas da aplicação é necessário login.

A aplicação foi desenvolvida com:

  • Node.js
  • Sequelize
  • JWT
  • Arquitetura MSC
  • docker
  • docker-compose
  • MySql
  • Express;

Diagrama ER e Entidades:

DER

Como rodar o projeto

Com Docker:

** ⚠️ Antes de começar, seu docker-compose precisa estar na versão 1.29 ou superior. Veja aqui ou na documentação como instalá-lo. No primeiro artigo, você pode substituir onde está com 1.26.0 por 1.29.2.**

  • docker-compose up -d --build
  • docker exec -it blogs_api bash
  • npm install
  • npm run prestart
  • npm run seed
  • npm run debug

Localmente:

Necessita ter um banco de dados(MySql) instalado localmente

  • npm install
  • npm run prestart
  • npm run seed
  • npm run debug
📝 Tecnologias utilizadas
  • Docker;
  • docker-compose;
  • Mysql;
  • Node.js;
  • Sequelize;
  • Express;
  • JWT;
📝 Habilidades
  • Utilizar o Sequelize para integrar o banco de dados com sua aplicação;
  • Criar migrações utilizando o Sequelize;
  • Criar seeds utilizando o Sequelize;
  • Utilizar o sequelize para criar relacionamento 1:1 entre tabelas;
  • Utilizar o sequelize para criar relacionamento 1:N entre tabelas;
  • Utilizar o conceito de transactions para realizar operações atômicas no banco de dados com sequelize;
  • Utilizar o sequelize para criar relacionamento N:N entre tabelas;
  • Utilizar métodos que simulam comandos de integração de tabelas;
  • Gerar tokens a partir de informações como login, nome ou email;
  • Autenticar pessoas usuárias utilizando o token JWT.
  • Autorizar o acesso a rotas do Express, usando o token JWT.
Devs responsáveis

trybe-blog-api's People

Contributors

murilo-mrs avatar trybe-tech-ops avatar

Stargazers

 avatar

Watchers

 avatar

trybe-blog-api's Issues

Projeto Blogs Api

Projeto Blogs Api

⚠️ ATENÇÃO: Essa Issue é apenas o template para sua issue. Por favor, não a edite ou marque nelas. Para replicar a mesma copie e cole esse texto para uma nova issue! ⚠️

Veja como fazer isso no gif abaixo:

1. O que vou desenvolver?

Você vai desenvolver uma API e um banco de dados para a produção de conteúdo para um blog! Para isso, desenvolverá uma aplicação em Node.js usando o pacote sequelize para fazer um CRUD de posts.

Neste projeto você irá:

  • Desenvolver endpoints que estarão conectados ao seu banco de dados seguindo os princípios do REST;
  • Trabalhar a relação user e post, visto que para fazer um post é necessário usuário e login
  • Trabalhar a relação de posts para categories e de categories para posts, visto que será necessária a utilização categorias para os posts.

2. Missão essencial

  • Antes de qualquer coisa: Abrir o PR para o Blogs Api

3. O que preciso saber para fazer o projeto?

  • Entender conceito de Migrations
  • Entender conceito de Model
  • Entender o conceito de Seeders
  • Entender Relacionamento 1:N
  • Entender Relacionamento N:N
  • Entender como criar uma rota com JWT

4. Quais conteúdos devo revisar?

4.1 - Conteúdos do Course

  • Dia 01: ORM - Interface da aplicação com o banco de dados
  • Dia 02: ORM - Associations 1:1 e 1:N
  • Dia 03: ORM - Associations N:N e Transactions
  • Dia 04: JWT - JSON Web Token - JWT

5. Checklist para desenvolver o projeto

  • Abrir o PR para esse projeto
  • Ler o readme inteiro ⚠️ Atenção às informações importantes ⚠️

5.1 - Requisitos obrigatórios

  • 01 - Crie migrations para as tabelas users, categories, blog_posts, posts_categories
  • 02 - Crie o modelo User em src/models/User.js com as propriedades corretas
  • 03 - Sua aplicação deve ter o endpoint POST /login
  • 04 - Sua aplicação deve ter o endpoint POST /user
  • 05 - Sua aplicação deve ter o endpoint GET /user
  • 06 - Sua aplicação deve ter o endpoint GET /user/:id
  • 07 - Crie o modelo Category em src/models/Category.js com as propriedades corretas
  • 08 - Sua aplicação deve ter o endpoint POST /categories
  • 09 - Sua aplicação deve ter o endpoint GET /categories
  • 10 - Crie o modelo BlogPost em src/models/BlogPost.js com as propriedades e associações corretas
  • 11 - Crie o modelo PostCategory em src/models/PostCategory.js com as propriedades e associações corretas
  • 12 - Sua aplicação deve ter o endpoint POST /post
  • 13 - Sua aplicação deve ter o endpoint GET /post
  • 14 - Sua aplicação deve ter o endpoint GET /post/:id
  • 15 - Sua aplicação deve ter o endpoint PUT /post/:id

5.2 - Requisitos bônus

  • 16 - Sua aplicação deve ter o endpoint DELETE /post/:id
  • 17 - Sua aplicação deve ter o endpoint DELETE /user/me
  • 18 - Sua aplicação deve ter o endpoint GET /post/search?q=:searchTerm

6. Hora de Comemorar 🎉

Portanto, vamos com tudo para esse projeto! 🚀

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.