Skip to content

Este repositório contém um projeto de blog desenvolvido, usando Laravel para o back-end e React.js para o front-end. O objetivo deste projeto foi demonstrar habilidades de desenvolvimento web.

Notifications You must be signed in to change notification settings

gabrielestefono/blog_laravel

Repository files navigation

1. Visão Geral do Projeto

Propósito:

Desenvolvido como um desafio técnico, este blog serve como uma ferramenta de aprendizado e demonstração de habilidades em desenvolvimento web. O desafio em questão é construir uma aplicação qualquer. Escolhi um blog de um layout que encontrei na comunidade Figma:

image

Segue o link para desenvolvedores que quiserem:

https://www.figma.com/community/file/1216616090937021365/free-blog-template-modern-creative-design

Backend: Tecnologias Utilizadas:

Laravel, Filament foram escolhidos por sua facilidade de aplicação, velocidade de desenvolvimento e familiaridade.

#2. Arquitetura do Sistema

Estrutura do Laravel: MVC (Model-View-Controller): Utilização do padrão MVC com:

Models:

Para interação com o banco de dados.

Views:

Desenvolvidas com React, proporcionando uma interface de usuário interativa.

Controllers:

Gerenciando a lógica de negócios e a interação entre Models e Views.

Banco de Dados

MySQL:

Escolhido pela facilidade de desenvolvimento e modelagem em um curto período de tempo, além de possibilidade de visualização em um esquema EER Diagram. image

3. Painel Administrativo (Filament)

image

Funcionalidades:

  • Criação de Usuários: Permite a administração de usuários do sistema.
  • Criação de Postagens: Interface para publicar e gerenciar postagens.
  • Criação de Categorias: Facilita a organização das postagens em diferentes categorias.

4. Personalizações e Componentes Adicionais

Filament:

Sem personalizações específicas foram implementadas.

Desenvolvimento Front-end: Tecnologias Utilizadas:

React.js:

Utilizado para criar a interface do usuário do blog. image Que inclui também um modo dark: image

SCSS (SASS):

Empregado para estilizar os componentes de front-end, proporcionando maior flexibilidade e organização do código CSS.

Responsividade

Abordagem de Design: O projeto foi desenvolvido especificamente para desktop, sem uma estratégia de design responsivo, será feito no futuro a responsividade.

6. Segurança e Performance:

Medidas de Segurança

Utilização das medidas de segurança integradas do Laravel, incluindo proteção contra CSRF.

Otimizações de Performance

Abordagem de Desenvolvimento: Estratégias específicas de otimização de performance, como caching ou minificação de arquivos, não foram implementadas ainda.

7. Deploy e Manutenção

Processo de Deploy: O projeto não foi implantado em um ambiente de produção; está armazenado apenas no GitHub.

8 - Visão Geral do Projeto.

Página inicial atraente, será o primeiro contato do leitor: image

Página Blog, onde todas as postagens são listadas: image

Página Sobre, que conta um pouco sobre cada escritor e mostra as últimas noticias deles. image

Ao clicar no nome de um autor, em qualquer parte do site, será redirecionado para a página do autor, que contém somente os posts dele e suas informações básicas: image

Ao clicar em uma noticia, será aberta a página da noticia: image

No header, é possível fazer uma busca por nome de noticia, o que levará o usuário a uma página com o resultado das buscas: image

No footer existem as categorias de noticias, onde o usuário pode filtrar as noticias. image

image

9 - Como rodar o projeto?

Requisitos

Como requisito, é necessário ter em sua máquina:

  • php8.2 ou superior instalado
  • Node.js
  • Composer
  • MySQL

Como rodar?

Ao fazer o clone do repositório, com os requisitos instalados, abra o projeto no terminal, no root digite os seguintes comandos:

  • composer install (instalará as dependências do PHP)
  • npm install (instalará as dependências do Node)

Será necessário criar um novo banco de dados no MySQL com o nome que preferir Deverá renomear o .env.examples para .env e ajustar os dados:

  • DB_CONNECTION=mysql
  • DB_HOST=127.0.0.1
  • DB_PORT=3306
  • DB_DATABASE=blog
  • DB_USERNAME=root
  • DB_PASSWORD=

Para os dados do seu banco de dados

Após feito isso, precisará rodar os comandos no mesmo terminal de antes (ou um novo na mesma pasta).

  • php artisan key:generate (irá gerar uma chave no .env)
  • php artisan migrate (irá gerar as tabelas necessárias no banco de dados)
  • php artisan make:filament user. (Criará um novo usuário no painel administrativo)
    • Irá pedir o nome de usuário (pode ser fictício)
    • Irá pedir um email (pode ser fictício)
    • Irá pedir uma senha.
  • php artisan serve (irá servir a aplicação no link http://localhost:8000)

Abra outro terminal na mesma pasta e digite npm run build para gerar um html estático

About

Este repositório contém um projeto de blog desenvolvido, usando Laravel para o back-end e React.js para o front-end. O objetivo deste projeto foi demonstrar habilidades de desenvolvimento web.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published