Bem-vindo ao repositório do projeto MyBlog. Este projeto é uma entrega do MBA DevXpert Full Stack .NET e é referente ao módulo Introdução ao Desenvolvimento ASP.NET Core. O objetivo principal desenvolver uma aplicação de blog que permite aos usuários criar, editar, visualizar e excluir posts e comentários, tanto através de uma interface web utilizando MVC quanto através de uma API RESTful. Descreva livremente mais detalhes do seu projeto aqui.
- Jonatas Cruz
O projeto consiste em:
- Aplicação MVC: Interface web para interação com o blog.
- API RESTful: Exposição dos recursos do blog para integração com outras aplicações ou desenvolvimento de front-ends alternativos.
- Autenticação e Autorização: Implementação de controle de acesso, diferenciando administradores e usuários comuns.
- Acesso a Dados: Implementação de acesso ao banco de dados através de ORM.
- Linguagem de Programação: C#
- Frameworks:
- ASP.NET Core MVC
- ASP.NET Core Web API
- Entity Framework Core
- Banco de Dados: SQL Server ou SQLite
- Autenticação e Autorização:
- ASP.NET Core Identity
- JWT (JSON Web Token) para autenticação na API
- Front-end:
- Razor Pages/Views
- HTML/CSS para estilização básica
- Documentação da API: Swagger
A estrutura do projeto é organizada da seguinte forma:
-
src/
- MyBlog.Core: camada central contendo as entidades, modelos de domínio da aplicação, interfaces, regras de negócio, persistência de dados e injeção de dependências.
- MyBlog.Web.Mvc: interface web da aplicação, utilizando o padrão MVC.
- MyBlog.Web.Api: API RESTful da aplicação.
-
tests/MyBlog.Tests.Integration: testes de integração da Web API.
-
README.md: Arquivo de Documentação do Projeto
-
FEEDBACK.md: Arquivo para Consolidação dos Feedbacks
-
.gitignore: Arquivo de Ignoração do Git
-
.gitattributes: Atributos do Git
-
.editorconfig: Preferências de Estilo de Código
- CRUD para Posts e Comentários: Permite criar, editar, visualizar e excluir posts e comentários.
- Autenticação e Autorização: Diferenciação entre usuários comuns e administradores.
- API RESTful: Exposição de endpoints para operações CRUD via API.
- Documentação da API: Documentação automática dos endpoints da API utilizando Swagger.
- Template utilizada no projeto MVC: https://startbootstrap.com/template/blog-home
- Uso da lib Timeago para apresentação de data/hora no front-end.
- Contador de views nos posts.
- Feature de pesquisa de posts por palavra-chave.
- Paginação de posts na home e também na WebAPI.
- .NET SDK 8.0 ou superior
- Visual Studio 2022 ou superior (ou qualquer IDE de sua preferência)
- Git
-
Clone o Repositório:
git clone https://github.com/jonataspc/MyBlog.gitcd MyBlog
-
Configuração do Banco de Dados:
- Para execução em ambiente de desenvolvimento será utilizado SQLite (string de conexão consta em
appsettings.Development.json). Para ambiente de produção será utilizado SQL Server (string de conexão consta emappsettings.Production.json) - Rode o projeto para que a configuração do Seed crie o banco e popule com os dados básicos
- Para execução em ambiente de desenvolvimento será utilizado SQLite (string de conexão consta em
-
Executar a Aplicação MVC:
cd src\MyBlog.Web.Mvcdotnet run --launch-profile "https"- Acesse a aplicação em: https://localhost:7160
-
Executar a API:
cd src\MyBlog.Web.Apidotnet run --launch-profile "https"- Acesse a documentação da API em: https://localhost:7161/swagger
- JWT para API: As chaves de configuração do JWT estão no
\src\MyBlog.Web.Api\appsettings.json. - Migrações do Banco de Dados: As migrações são gerenciadas pelo Entity Framework Core. Não é necessário aplicar manualmente devido a configuração do seed de dados. Os dados de teste (usuários, autores, posts e comentários) são populados através da lib Bogus.
- Credenciais do usuário admin criado por padrão: E-mail:
admin@admin.com, senha:Admin123!
A documentação da API está disponível através do Swagger. Após iniciar a API, acesse a documentação em https://localhost:7161/swagger
- Este projeto é parte de um curso acadêmico e não aceita contribuições externas.
- Para feedbacks ou dúvidas utilize o recurso de Issues
- O arquivo
FEEDBACK.mdé um resumo das avaliações do instrutor e deverá ser modificado apenas por ele.