Teste pratico desenvolvido para vaga de estagio de desenvolvedor iniciante.
Contruir uma aplicação do tipo chat em tempo real, contendo back-end e front-end. No front-end desenvolver uma tela de login e uma tela interna para o chat
Front-end: Next.js, TailwindCSS, Socket.io Client, DaisyUi.
Back-end: TypeScript, Node, Express, Socket.io, Mongoose, JWT, Bcrypt, Passport.
DataBase: MongoDB.
OBS
: A nova Documentação do React recomenda que utize uma framework desde o inicio para o desenvolvimento de aplicações React, por isso a utilização de Next.Js 13
Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu /server/.env
PORT
=3000
NODE_ENV
=development
JWT_SECRET
=8255
MONGO_URI
=mongodb://127.0.0.1:27017/nome_sobrenome
Importante iniciar o server antes de iniciar client
Certifique-se de que não há nenhum serviço rodando na porta 3000 e 3001
No diretorio raiz do projeto entre na pasta /server e instale.
cd server
npm install
npm start
Apos instalar e iniciar o server, em outro terminal entre na pasta /client e instale.
cd client
npm install
npm start
POST /api/auth/singup
Parâmetro | Tipo | Descrição |
---|---|---|
name |
string |
Nome do usuários |
document |
string |
CPF do usuários |
password |
string |
Senha do usuários |
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9eyJfaWQiOiI2NDcwMjY2YTFmYzMyYTVjODU0YTUiLCJuYW1lIMDcxNDY2LCJleHAiOjE2ODUwNzUwNjZ9.r1o7QLaUI6sD2ZOZ0HO
",
"user": {
"name": "Felipe Ribeiro"
}
}
POST /api/auth/login
Parâmetro | Tipo | Descrição |
---|---|---|
document |
string |
CPF do usuários |
password |
string |
Senha do usuários |
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9yJfaWQiOiI2NDZkNGFhMjBkODAyOTJhY4NzYwMjIiLCJu33sJ03-eqhBjThQKcrPaASs9XURYExogSaP6R03T4",
"user": {
"name": "Felipe Ribeiro"
}
}
GET /api/user/validate
Key | Value | Descrição |
---|---|---|
Authorization |
Bearer Token |
Token do usuários fornecido ao fazer se cadastrar ou fazer login |
{
"name": "Felipe Ribeiro"
}
Email: felipper43@gmail.com
- Logout
- Sistema de notificações
- Chat em grupo com todos usuárioss logados
- Alteração dos dados de usuárioss