Este projeto é uma plataforma com o objetivo de criar um ambiente onde os usuários podem trocar ou doar livros. A ideia principal é que os estudantes da unb possam postar os livros que desejam trocar ou doar para que outros estudantes caso interessados proponham algo em caso de troca.
- UNBook
Para o desenvolvimento do backend a equipe utilizará:
- JavaScript como linguagem base do backend com o apoio do framework express e node.js
- MySQL para a elaboração do banco de dados, com apoio do Prisma.
Para o desenvolvimento do frontend a equipe utilizará:
- Next.js
- JavaScript com React.
- CSS com componentes do Bootstrap e bibliotecas do tailwind.
Aqui serão exibidos os padrões de commits que a equipe deverá seguir para a organização do histórico de desenvolvimento do projeto
[tipo](Escopo da Alteração): Descrição
Neste campo, será descrito qual tipo de alteração o commit descreve. Exemplo
- Feat: descreve novas funcionalidades.
- Fix: descreve o ajuste de funcionalidades anteriormente implementadas.
- Docs: descreve alterações na documentação do projeto.
- Style: descreve alterações na estilização do projeto.
- Deps: descreve instalação de dependencias.
Neste campo, será descrito qual parte do projeto foi alterada. Exemplo
- Pagina Login.
Neste campo, deverá ser descrito com detalhes a mudança.
- "[docs](Padronização de Commits): Criado o arquivo que define os padrões de commit que a equipe seguirá durante o desenvolvimento do projeto"
Este fluxograma apresenta a estrutura de navegação de um sistema, detalhando as interações possíveis entre as diferentes páginas. Ele organiza o fluxo das ações de forma clara e intuitiva. Abaixo, estão descritas as principais seções do sistema:
Ponto de entrada do sistema, com opções para login ou cadastro.
O usuário pode fazer login utilizando e-mail ou nome de usuário.
Em caso de problemas, há a opção de redefinir a senha, que envolve o envio de um e-mail de recuperação e o registro de uma nova senha.
Se o usuário não tiver uma conta, pode se cadastrar.
Processo que exige informações pessoais e validação por e-mail antes de acessar a plataforma.
Exibição dos posts com os livros anunciados.
- Editar perfil
- Visualização dos meus posts
Possibilidade de editar posts e visualizar suas informações.
O usuário coloca título, descrição, gênero, fotos e define se quer trocar ou doar.
Um pouquinho sobre nós e sobre o nosso projeto.
Posts dos usuários.
Informações dos livros anunciados por outros usuários.
Exibição dos posts de acordo com a pesquisa do usuário.
- O sistema deve permitir que o usuário se cadastre utilizando nome, email e senha.
- O sistema deve validar os dados fornecidos durante o cadastro (ex: formato correto de email).
- O usuário deve receber um email de confirmação após o cadastro.
- O sistema deve permitir que o usuário faça login utilizando email e senha.
- O sistema deve permitir a autenticação do usuário utilizando login com Google.
- O usuário deve ser capaz de editar seu perfil (nome, email, foto de perfil, contatos, etc).
- O sistema deve permitir que o usuário visualize seu perfil completo.
- O usuário deve poder cadastrar livros em seu perfil, incluindo título, autor, descrição e foto.
- O usuário deve escolher se o livro está disponível para doação ou troca.
- O sistema deve permitir que o usuário defina o status do livro (disponível ou não). O status de um livro deve ser atualizado para "doado" ou "trocado" assim que o usuário finalizar a doação ou troca.
- O sistema deve permitir que o usuário envie uma proposta de troca de livros.
- O usuário deve poder visualizar livros de outros usuários disponíveis para troca.
- A troca de livros não será finalizada dentro do sistema, o usuário será redirecionado para plataformas externas.
- O sistema deve permitir que o usuário filtre livros disponíveis para doação ou troca.
- O sistema deve permitir que o usuário veja apenas livros que ele pode pegar (baseado no limite de 3 livros por mês).
- O sistema deve ser capaz de suportar até 1000 usuários simultâneos sem degradação perceptível na performance.
- O sistema deve utilizar criptografia (hash) para armazenar senhas dos usuários.
- A autenticação deve ser realizada de forma segura, utilizando OAuth para login via Google.
- O sistema deve ter proteção contra ataques comuns, como SQL Injection e Cross-Site Scripting (XSS).
- O sistema deve ter uma interface amigável e intuitiva, permitindo fácil navegação entre as funcionalidades.
- A interface deve ser responsiva, garantindo que o sistema funcione bem em dispositivos móveis e desktops.
- O código do sistema deve ser modular, com boa documentação para facilitar futuras manutenções e atualizações.
- O sistema deve ser projetado de maneira que permita aumentar a capacidade de usuários e dados sem necessidade de grandes modificações na arquitetura.
- Cada usuário pode pegar até 3 livros doados por mês.