Este projeto foi desenvolvido durante um desafio técnico, o objeto era desenvolver um projeto fullstack de um sistema de blog com funcionalidades com um CRUD de posts e autenticação de usuário.
- Nest.js: Framework para desenvolvimento de aplicações em Node.js.
- Prisma ORM: ORM (Object-Relational Mapping) para bancos de dados SQL e NoSQL, oferecendo uma camada de abstração para interagir com o banco de dados.
- Docker: Plataforma para desenvolvimento, envio e execução de aplicações em containers, permitindo a criação de ambientes isolados e portáteis.
- Joi: Biblioteca para validação de dados em JavaScript, utilizada para definir regras e restrições nos formatos e estruturas dos dados.
- React: Biblioteca JavaScript para a construção de interfaces de usuário interativas e reativas.
- [Argon2]: Argon2 é uma função de hash de senha que é resistente a ataques de força bruta e de dicionário.
- TailwindCSS: Framework de CSS utilitário que oferece uma abordagem baseada em classes para a criação rápida de layouts e estilos personalizados.
- Axios: Biblioteca para realizar requisições HTTP em JavaScript, oferecendo uma interface simples e flexível para interagir com APIs.
- React Router Dom: Biblioteca para roteamento de aplicações React, permitindo a navegação entre diferentes componentes ou páginas da aplicação de forma declarativa.
Para fins de organização no GitHub e facilidade na hora de mostrar o projeto, decidi cria-lo como monorepo e fazer o deploy na Vercel e Railway. Seguem os links:
-
Instale as dependências na pasta /blog-api e na pasta /blog-ui:
npm install
-
Crie um arquivo
.env
na pasta/blog-api/
com as seguintes variáveis:
DATABASE_URL="postgresql://seu-usuario:sua-senha@localhost:5432/seu-banco"
JWT_SECRET="seu-secret"
-
Inicie o servidor de ambas as pasta, para a pasta "/blog-ui" use
npm run dev
, já para a pasta "/blog-api" usenpm run start:dev
: -
Acesse o app em
http://localhost:3000
.
- Crie um arquivo
.env
na raiz do projeto com as variáveis de ambiente:
DATABASE_URL="postgresql://seu-usuario:sua-senha@localhost:5432/seu-banco"
JWT_SECRET="seu-secret"
POSTGRES_USER="seu-usuario"
POSTGRES_PASSWORD="sua-senha"
POSTGRES_DB="seu-banco"
- Rode o Docker Compose:
docker-compose up --build -d
- Acesse o app em
http://localhost:3000
.
Se preferir você pode testar online. Basta acessar o link e entrar com o usuário "luiz" e senha "123456teste".