Skip to content

h3zord/book-wize

Repository files navigation

Boas-vindas ao repositório do Book Wize!

Demonstração

book-wize.mp4

O que foi desenvolvido?

Book Wize é uma plataforma de recomendação de livros para leitores. A aplicação começa com uma página de login, onde o usuário pode entrar com sua conta do Google, GitHub ou como visitante. Após o login, o usuário é direcionado para a página de "Início", que exibe informações como sua última leitura, avaliações mais recentes e livros populares. Na seção "Explorar", o usuário pode visualizar uma lista de todos os livros, filtrando por nome do livro, autor ou categoria. Ao clicar no card de um livro, são exibidas mais informações, como número de avaliações, número de páginas, categorias, comentários e uma nota avaliativa. Usuários logados podem deixar comentários, atribuir notas e marcar o livro como "lido". Na seção "Perfil", o usuário encontra informações específicas sobre seus últimos livros avaliados, número de páginas lidas, autores lidos, livros avaliados e a categoria mais lida.

A aplicação foi desenvolvida com Next.js (versão 14.1.3), React (versão 18) e TypeScript. As requisições foram construídas utilizando Route Handlers do próprio Next.js. O banco de dados escolhido foi PostgreSQL, em conjunto com Prisma ORM para abstração das queries. O NextAuth.js foi usado para a configuração do login social. A estilização foi feita com Styled Components. Outras bibliotecas utilizadas incluem: ESLint, React Hook Form, Date FNS, Framer Motion, Phosphor Icons, Material UI, Radix UI e Git para controle de versão.

➜ A responsividade deste projeto está em desenvolvimento.

Linguagens e ferramentas

Instalação e execução

1 - Clone o repositório:

git clone git@github.com:h3zord/book-wize.git

2 - Entre no repositório:

cd book-wize

3 - Configure as variáveis de ambiente:

➜ Crie na raíz do projeto um arquivo .env

// URL do banco de dados
POSTGRES_PRISMA_URL="postgres://default:8AVqMup2BUjK@ep-raspy-firefly-a4rtnpjv-pooler.us-east-1.aws.neon.tech:5432/verceldb?sslmode=require&pgbouncer=true&connect_timeout=15"
POSTGRES_URL_NON_POOLING="postgres://default:8AVqMup2BUjK@ep-raspy-firefly-a4rtnpjv.us-east-1.aws.neon.tech:5432/verceldb?sslmode=require"

// URL da API
NEXT_PUBLIC_API_URL="http://localhost:3000/api"

// Segredo para criptografia do NextAuth
NEXTAUTH_SECRET="aPw0HyQCB2m8eWk86WKbwC0uKbDxCh+X6eE3Pt3luF4="

// ID do OAuth App do GitHub
GITHUB_ID="c27b67ffb7a0525d73c8"

// Segredo do OAuth App do GitHub
GITHUB_SECRET="47e33a05b47b9a3005381b529d5d9e41efb9e745"

// ID do Cliente OAuth do Google
GOOGLE_CLIENT_ID="643192943905-h117k0l481mtohpt24uq6s1hooj92em3.apps.googleusercontent.com"

// Segredo do Cliente OAuth do Google
GOOGLE_CLIENT_SECRET="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"

4 - Instale as dependências:

Caso utilize o npm

npm install

Caso utilize o yarn

yarn install

5 - Inicie o projeto:

Caso utilize o npm

npm run dev

Caso utilize o yarn

yarn run dev

Next.js irá executar a aplicação na porta padrão 3000.
http://localhost:3000