Bookstore é um sistema de biblioteca desenvolvido utilizando ASP.NET Core MVC, Entity Framework e uma camada DAO personalizada para o gerenciamento de empréstimos de livros. O projeto adota o padrão Model-View-Controller (MVC) para manter a organização e separação de responsabilidades dentro do Sistema.
- 📖 Pesquisa e exibição de livros disponíveis.
- 📋 Gerenciamento de empréstimos de livros com datas de devolução.
- 👤 Sistema de autenticação para associar empréstimos aos usuários logados.
- 🖼 Interface moderna com Bootstrap para melhorar a experiência do usuário.
- 📚 Recomendação de livros com base nas leituras feitas pelo usuário.
- ASP.NET Core MVC: Estrutura principal para o desenvolvimento do projeto.
- Entity Framework: ORM para comunicação com o banco de dados.
- SQL Server: Banco de dados utilizado para armazenar informações.
- Bootstrap: Para estilização e responsividade do site.
- HTML, CSS e JavaScript: Tecnologias essenciais para criação da interface do usuário.
O projeto segue o padrão MVC, separando as responsabilidades em três camadas:
- Representa os dados da aplicação.
- Contém as classes principais, como
Livro,Emprestimoe outras relacionadas ao banco de dados. - Utiliza o Entity Framework para mapear essas classes para tabelas no banco de dados.
Exemplo de classe modelo:
public class Livro
{
[Key]
public int Id { get; set; }
public string Titulo { get; set; }
public string Autor { get; set; }
public string Genero { get; set; }
public int AnoPublicado { get; set; }
public string ISBN { get; set; }
public string CapaURL { get; set; }
public string Sinopse { get; set; }
public bool Disponivel { get; set; }
}- Responsável por renderizar as páginas para o usuário.
- Utiliza arquivos Razor (.cshtml), permitindo uma integração fluida entre HTML e C#.
- As páginas foram estilizadas com Bootstrap, garantindo responsividade.
Exemplo de uma view:
@model LivroBorrowViewModel
<div class="container">
<h1>@Model.Livro.Titulo</h1>
<p><strong>Autor:</strong> @Model.Livro.Autor</p>
<p><strong>Gênero:</strong> @Model.Livro.Genero</p>
<p><strong>Sinopse:</strong> @Model.Livro.Sinopse</p>
</div>- Processa as requisições do usuário e interage com os modelos para enviar dados às views.
- Contém a lógica de negócio e as regras para manipular as informações.
Exemplo de método controlador:
public IActionResult Borrow(int id) {
var livro = _context.Livros.FirstOrDefault(l => l.Id == id);
if (livro == null) return NotFound();
return View(new LivroBorrowViewModel { Livro = livro });
}- Camada criada para isolar a lógica de acesso ao banco de dados.
- Simplifica as operações CRUD, garantindo um código mais limpo nos controladores.
Exemplo de classe DAO:
public class LivroDAO : ILivroDAO
{
private readonly ApplicationDbContext Context;
public LivroDAO(ApplicationDbContext context)
{
Context = context;
}
// Método pra Inserir um novo Livro no Banco de Dados
public bool Add(Livro livro)
{
Context.Add(livro);
return Save();
}
public bool Delete(Livro livro)
{
Context.Remove(livro);
return Save();
}
}- Clone o repositório:
git clone https://github.com/LiamFer/Bookstore.git
- Instale o .NET SDK necessário (ex.: .NET 6).
- Configure a string de conexão com seu banco de dados SQL Server no
appsettings.json. - Execute as migrações do Entity Framework:
dotnet ef database update
- Inicie o projeto:
dotnet run
- Acesse o site em:
http://localhost:5000.
Feito com 💻 por William.
