A CRUD implementation using sequelize, mySQL, NODEJS, Express, JWT and other technologies.

Overview

A ideia do projeto é simular o funcionamento do backend de um blog através da implementação de uma aplicação em Node.js usando o pacote sequelize para fazer um CRUD de posts. Para a realização do projeto, algumas metas deviam ser batidas e essas são descritas abaixo:

1 - A aplicação deve ter o endpoint POST /user

Aqui deve ser possível criar um usuário, caso o mesmo não exista. Para isso deve ser enviado à aplicação um objeto JSON contendo:

  • DisplayName: o nome que aparecerá para o usuário cadastrado;
  • Email: Cada email somente poderá ser cadastrado na plataforma uma vez;
  • Password: Deverá conter a senha que o usuário irá utilizar para fazer Login na plataforma, esta deverá conter no mínimo 6 carácteres.

Caso o email já tenha sido cadastrado uma mensagem de erro deverá informar que o usuário já existe.

Realizado o cadastro com sucesso a aplicação deverá devolver um token JWT que garantirá o acesso às funcionalidades da aplicação.

2 - A aplicação deve ter o endpoint POST /login

A aplicação deve possuir uma página de login caso o usuário já seja cadastrado. Nessa página um objeto JSON contendo email e senha deve ser enviado à aplicação. Caso seja informado dados válidos a aplicação devolverá um token de acesso, caso contrário ela devolverá um erro informando que os dados inseridos são inválidos.

3 - A aplicação deve ter o endpoint GET /user

A aplicação deve ser capaz de listar todos os usuários cadastrados, para isso será necessário informar à aplicação um token de acesso válido, a partir desse ponto todas as rotas necessitam de um token de acesso.

4 - A aplicação deve ter o endpoint GET /user/:id

Além de listar todos os usuários a aplicação deve ser capaz de devolver cada usuário individualmente, para isso basta informar na url da requisição o id do usuário desejado.

5 - A aplicação deve ter o endpoint POST /categories

Quem já acessou um blog ou um site de compras sabe que cada item de uma aplicação possuí uma categoria para possibilitar filtrar itens semelhantes. A aplicação torna necessária a habilidade de criar categorias novas através desse endpoint.

Para criar uma categoria é necessário informar o nome da categoria que deseja criar.

6 - A aplicação deve ter o endpoint GET /categories

A aplicação deve ser capaz de listar todas as categorias criadas até o momento.

7 - A aplicação deve ter o endpoint POST /post

O usuário pode criar um post novo no blog, para isso ele deverá enviar um objeto JSON em sua requisição contendo:

title: titulo de sua postagem; content: conteúdo da sua postagem; categoryIds: o número de identificação de cada uma das categorias em que seu post se enquadra. Observação, todos os ids devem ser ids válidos.

8 - A aplicação deve ter o endpoint GET /post

A aplicação deve ser capaz de mostrar todos as postagens criadas até o momento. O retorno deve conter as informações abaixo:

Retorno Get '/post'

9 - A aplicação deve ter o endpoint GET post/:id

Similar ao item anterior, se for requisitado com o id correto de um post, a aplicação deverá devolver todas as informações referentes aquela postagem.

10 - A aplicação deve ter o endpoint PUT /post/:id

A aplicação deve ser capaz de deixar o usuário atualizar uma postagem sua. Para isso será verificado se o token JWT condiz com o id de usuário do criador da postagem.

11 - A aplicação deve ter o endpoint DELETE post/:id

O usuário deve ser capaz de deletar suas postagens através do id da mesma. Será verificado se o usuário é dono daquela postagem.

12 - A aplicação deve ter o endpoint DELETE /user/me

O usuário deve ser capaz de remover sua conta do banco de dados da aplicação.

13 - A aplicação deve ter o endpoint GET post/search?q=:searchTerm

Deve ser possível pesquisar uma publicação através de seu conteúdo e/ou seu título.

You might also like...

Simple REST API using Express with TypeScript, PostgreSQL, and MySQL to practice the Clean Architecture by Uncle Bob.

Clean-Architecture Simple REST API using Express with TypeScript, PostgreSQL, and MySQL to practice the Clean Architecture by Uncle Bob. About This RE

Oct 16, 2022

A dockerized express mysql starter using typescript which iclude user management

A dockerized express mysql starter using typescript which iclude user management

Jan 26, 2022

A full CRUD application built using the MELN(MongoDB,Express,LiquidJS,Node) stack.

A full CRUD application built using the MELN(MongoDB,Express,LiquidJS,Node) stack.

Pokedex Your mission is to be the very best, like no one ever was, at making a Pokémon manager (a Pokédex). Learning Objectives Full CRUD App Prerequi

Sep 23, 2022

practice site to utilize node.js, Express, and mySQL

fishing_site practice site to utilize node.js, Express, and mySQL Run Locally create local instance of MySQL database. Run DB/fishing_Schema.sql to cr

Jan 22, 2022

A Restaurant (Table) Reservation API built with Node, TypeScript, Express, TypeORM, a MySQL DB, all running on Docker containers

Restaurant (Table) Reservation API A simple API for reserving tables at a restaurant. The API is based on the REST architectural style and uses Node.j

Oct 5, 2022

A Restaurant (Table) Reservation API built with Node, TypeScript, Express, TypeORM, a MySQL DB, all running on Docker containers

Restaurant (Table) Reservation API A simple API for reserving tables at a restaurant. The API is based on the REST architectural style and uses Node.j

Oct 5, 2022

Node.js Express + MySQL vulnerable boilerplate project

Node.js Express + MySQL vulnerable boilerplate project

Node.js Express + MySQL vulnerable boilerplate project

Sep 16, 2022

Crud with GraphQL + Express + Json Server

How to run the project ### Install dependecies $ yarn install ### Run GraphQL server $ yarn dev ### Run Json Server $ yarn run json:server ### The

Jun 22, 2022

A clean-looking, secure, MySQL/MariaDB remote connection terminal made in NodeJS

A clean-looking, secure, MySQL/MariaDB remote connection terminal made in NodeJS

NodeJS MySQL/MariaDB Terminal NodeJS MySQL/MariaDB Terminal is a remote terminal for MySQL/MariaDB databases, which works in the same way as the offic

Jun 24, 2022
Owner
Vinicius Savordelli
Former entrepreneur and economist, one day I realized I wasn't passionate about my work. So i searched something to be in love with and found myself here 😄!
Vinicius Savordelli
CRUD APIs in NodeJS, Express and MySQL

Create CRUD APIs in NodeJS, Express and MySQL This is a simple NodeJS, Express and MySQL CRUD API example. that allows you to create, read, update and

Hala Ziani 5 Oct 19, 2022
Nestjs, Sequelize, Mysql Boilerplate

Nestjs - Sequelize - Mysql Boilerplate Description NestJS framework TypeScript starter repository or boilerplate with jwt user authentication. Feature

Hossain Azad 8 Aug 27, 2022
CRUD de productos basado en el ORM sequelize y el login y el registro usando archivo en formato JSON.

Desarrollo de una aplicación muy sencilla, utilizando diferentes recursos ofrecdos por Node.JS. Aquí puedes encontrar : Login - Registro - Administración de productos completamente funcionales) Recursos utilizados: Middleware - Express validator - Validaciones del lado del Front-End - y del Back-End - Sessión - Cookies - Multer, entre otros)

Ángel Daniel Fuentes Segura 4 Sep 12, 2022
Simple WhatsApp Gateway, Built Using Baileys, Express, Sequelize, and Mazer

WhatsApp - Gateway Simple WhatsApp Gateway, Built Using Baileys, Express, Sequelize + Mazer Installation Requirements Node.js Git VS Code or Any Text

Zekais 40 Dec 30, 2022
Use real-time computing technology and web technology to build a big data Kanban l to solve the problem. Among them, practical technologies include MySQL, Kafka, Flink, Redis, Flask and Echarts

实时计算(English Version) 运用实时计算技术、Web 技术构建一个大数据看板来解决问题。其中实用技术包括Mysql、Kafka、Flink、Redis、Flask和Echarts 目录 1.问题需求 2.方案分析 3.安装环境 4.环境启动命令和运行代码的方法 5.代码目录结构说明

Serendipity 2 Jan 8, 2022
Here's a RESTful API that interacts with a PostgreSQL database written in NodeJS with Typescript, RESTify, and Sequelize ORM.

Basic description REST (Representational State Transfer) is a standard architecture for building and communicating with web services, It typically man

Olabisi Oduola 2 Jan 14, 2022
It consists of a recreation of Twitter, to put into practice both Front-end and Back-end knowledge by implementing the MERN Stack together with other technologies to add more value to the project.

Twitter-Clone_Back-end ✨ Demo. ?? About the project. ?? Descriptions. It consists of a recreation of Twitter, to put into practice knowledge of both F

Mario Quirós Luna 5 Apr 12, 2022
It consists of a recreation of Twitter, to put into practice knowledge of both Front-end and Back-end implementing the MERN Stack along with other technologies to add more value to the project.

Twitter-Clone_Front-end ✨ Demo. Login Home Profile Message Notifications Deployed in: https://twitter-clone-front-end.vercel.app/ ?? About the project

Mario Quirós Luna 5 Jun 26, 2022
Open! Inclusive! Collaborative! A community for enthusiasts exploring new technologies, working on innovative ideas and helping each other grow together. Open Issues, Raise ideas, Make Pull Requests!

About Us OplnCo previously known as Devstucom represents Open Inclusive Collaborative. We as a community help our fellow students build skills through

OpInCo Community 4 Oct 13, 2022