ReadX é uma plataforma que visa facilitar a busca de livros usados e a troca dos mesmos entre os usuários do sistema, permitindo que registrem os livros de sua posse e possibilitando outros usuários oferecer seus livros como moeda de troca.
ReadX é uma aplicação web desenvolvida para conectar amantes de livros e facilitar a troca de livros entre eles. Com uma interface intuitiva, os usuários podem facilmente listar, buscar e negociar livros.
- Cadastro e autenticação com email-senha ou Github
- Registro de livros disponíveis para troca em sua estante virtual
- Busca de livros por título, autor ou gênero
- Sistema de mensagens para negociação de trocas (chat)
- Perfil do usuário personalizável
- Next.js - Meta framework componente core do sistema
- React - Biblioteca para construção de interfaces de usuário
- Tailwind - Framework CSS
- Prisma - ORM para banco de dados
- Clerk - Provedor de autenticação
- Terraform - Infrastructure as Code
- Bun - Runtime JS batteries included
- Docker - Ferramenta para conteinerização
Antes de iniciar o projeto, tenha certeza que tem instalado em sua máquina:
- Docker e Docker Compose
- Bun
- Terraform
Para iniciar o projeto localmente, siga os passos abaixo:
-
Clone o repositório:
git clone https://github.com/leonardonicola/readx.git readx
-
Navegue até o diretório do projeto:
cd readx
-
Instale as dependências:
bun install
-
Crie um arquivo
.env
e adicione as variáveis de ambiente necessárias baseado no.env.example
. É necessário uma conta no Clerk para ter acesso as chaves descritas no.env
. -
Execute o servidor de desenvolvimento:
bun dev
-
Acesse a aplicação em http://localhost:3000 em modo dev ou rode
docker compose --profile=dev up --build
e acesse http://localhost na porta 80
Após a instalação, você pode acessar a plataforma e começar a registrar seus livros, buscar por outros livros e iniciar negociações com outros usuários.
Contribuições são bem-vindas! Para contribuir com o projeto:
- Faça um fork do repositório.
- Crie uma branch para sua feature (
git checkout -b feat/nome-da-feature
). - Commit suas mudanças (
git commit -am 'Adiciona nova feature'
). - Faça um push para a branch (
git push origin feat/nome-da-feature
). - Abra um Pull Request.