Projeto completo da biblioteca social Leia Comigo, com frontend em React Native e backend em Node.js + MySQL.
- React Native 0.72.6
- React Navigation 6 (Stack + Bottom Tabs)
- Axios para requisições HTTP
- AsyncStorage para persistência local
- Context API para gerenciamento de estado
- JWT para autenticação
- Node.js
- Express
- Sequelize (ORM) + MySQL
- dotenv
- bcrypt para senhas
- jsonwebtoken para autenticação JWT
- Google Books API para integração externa
- swagger-jsdoc e swagger-ui-express para documentação de API
- Cadastro e login com autenticação JWT
- Validação de renda per capita (≤ R$ 1.500) no cadastro
- Logout automático se o token expirar
- Listagem de livros com filtros (título, autor, tipo, "meus livros")
- Cadastro manual de livros
- Integração com a Google Books API para busca e salvamento
- Relacionamento com o usuário que cadastrou
- Avaliar livros com estrelas e comentários
- Editar e excluir avaliações próprias
- Clone o repositório
git clone <url-backend>
cd leia-comigo-backend
- Configure o arquivo
.env
DB_NAME=nome_do_banco
DB_USER=usuario
DB_PASSWORD=senha
GOOGLE_BOOKS_API_KEY=sua_api_key
JWT_SECRET=sua_chave_jwt
- Instale as dependências
npm install
- Inicie o servidor
node server.js
- Acesse a Documentação Após iniciar, a documentação interativa da API estará disponível em: http://localhost:5000/api-docs 🚀
- Clone o repositório
git clone <url-frontend>
cd leia-comigo-app
- Instale as dependências
npm install
- Configure o backend em
src/services/api.js
const api = axios.create({
baseURL: 'http://localhost:5000'
});
- Execute o app
- Android:
npx react-native run-android
- iOS:
cd ios && pod install && cd ..
npx react-native run-ios
Para uma visualização completa, interativa e com a possibilidade de testar as rotas em tempo real, acesse a documentação gerada pelo Swagger:
➡️ http://localhost:5000/api-docs
Abaixo está um resumo das rotas disponíveis.
POST /usuarios/cadastrar
→ CadastroPOST /usuarios/login
→ Login
GET /livros/listar
→ Listar com filtrosGET /livros/todos
→ Listar todosPOST /livros/cadastrar
→ Cadastrar manualmentePOST /livros/salvar-livros
→ Buscar na Google Books
GET /avaliacoes/:id_livro
→ Listar por livroPOST /avaliacoes/cadastrar
→ Avaliar livroPUT /avaliacoes/atualizar/:id
→ Editar avaliaçãoDELETE /avaliacoes/excluir/:id
→ Excluir avaliação
⚠️ Todas essas rotas (exceto login e cadastro) requerem envio do token JWT no cabeçalho:
Authorization: Bearer SEU_TOKEN_JWT
AuthStack (não logado)
├── LoginScreen
└── RegisterScreen
MainTabs (logado)
├── HomeTab
│ ├── HomeScreen
│ ├── BookDetailsScreen
│ ├── AddReviewScreen
│ └── EditReviewScreen
├── SearchTab
│ └── SearchBooksScreen
├── AddBookTab
│ └── AddBookScreen
└── ProfileTab
└── ProfileScreen
- BookCard → Card para livros
- RatingStars → Estrelas de avaliação
- LoadingSpinner → Indicador de carregamento
- Cores principais: Azul (#2563eb), Verde (#16a34a), Amarelo (#fbbf24)
- Componentes com sombras e botões arredondados
- Bottom tabs com ícones emoji
- Mensagens de erro e sucesso integradas
- Cadastre-se com renda per capita até R$ 1.500
- Faça login com suas credenciais
- Explore livros cadastrados ou buscados da Google Books
- Avalie livros e veja avaliações de outros usuários
- Gerencie seus próprios livros e avaliações
- Fork o projeto
- Crie uma branch
- Commit suas mudanças
- Envie um Pull Request
Este projeto está licenciado sob os termos da licença MIT.