/dom-pixel-blog

Blog page using NextJS + Mantine Ui with own API, MongoDB database connection with Prisma ORM,Firebase Storage to upload image files and nextauth and bCrypt to user authentication

Primary LanguageTypeScript

Dom Pixel Blog

Dom Pixel Blog

Descrição

Dom Pixel Blog é um projeto de teste técnico desenvolvido para a vaga de Fullstack Developer na empresa Dom Pixel. Este projeto demonstra minhas habilidades no desenvolvimento web e abrange diversos aspectos do desenvolvimento de aplicativos, desde o frontend até o backend.

Tecnologias Principais

  • Next.js v13: Utilizei a versão 13 do Next.js para aproveitar os recursos mais recentes e aprimorar o desempenho da nossa aplicação.

  • Mantine UI Design System: O design da aplicação é baseado no design system da Mantine UI para garantir uma experiência de usuário consistente e atraente.

  • Prisma e MongoDB: Para lidar com o banco de dados, utilizei o Prisma como ORM (Object-Relational Mapping) em conjunto com o MongoDB como banco de dados NoSQL.

  • Firebase Storage: O Firebase Storage foi a escolha para o armazenamento de imagens, garantindo que os usuários possam fazer upload e gerenciar imagens de forma fácil e segura.

  • Autenticação com Bcrypt e NextAuth: Implemementei um sistema de autenticação seguro com a ajuda da biblioteca Bcrypt para criptografar senhas e NextAuth para facilitar a autenticação de usuários.

  • API Personalizada: Criei uma API personalizada para fornecer dados e funcionalidades para a aplicação, garantindo uma integração suave entre o frontend e o backend.

Instalação e Configuração do Projeto

  1. Clone o repositório:
git clone https://github.com/brvnfr/dom-pixel-blog.git
  1. Crie um arquivo .env na raiz do projeto e copie o conteudo do arquivo .env.example.

  2. Execute o comando abaixo para instalar as dependencias do projeto:

npm i
  1. Execute o comando abaixo para criar um client do prisma:
npx prisma generate
  1. Inicie o servidor de desenvolvimento:
npm run dev

Uso

Após a instalação, a aplicação estará disponível em http://localhost:3000. Você pode acessar o projeto e explorar os recursos.