PHP Classes

How to Implement a Book Store PHP Project Using a JavaScript Based Front-end and a PHP Front-end using the Package Livraria: Manage a bookstore using micro-services

Recommend this page to a friend!
  Info   Screenshots   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2024-09-24 (3 months ago) RSS 2.0 feedNot enough user ratingsTotal: 42 All time: 10,876 This week: 43Up
Version License PHP version Categories
livraria 1.0MIT/X Consortium ...5PHP 5, E-Commerce, Web services, Busi..., A...
Description 

Author

This package can manage a bookstore using micro-services.

It provides a front-end implemented by pages generated using JavaScript and information pulled from the server using a Web services API.

The package also provides the back-end that implements an API to authenticate users, provide information about books for sale, and process the sale checkout operations.

In Portuguese:

Este projeto é um exemplo de arquitetura de e-commerce implementado utilizando o conceito de microserviços.

O objetivo é demonstrar a separação de responsabilidades entre diferentes serviços que compõem a aplicação, como autenticação, gerenciamento de produtos e gateway de API.

Innovation Award
PHP Programming Innovation award nominee
September 2024
Number 6
Many bookstores started to sell their books on e-commerce sites to increase their book sales.

This package implements a bookstore Web site ready to sell books to customers worldwide.

It separates the front-end implemented in JavaScript from the back-end implemented in PHP as a Web services API.

Manuel Lemos
Picture of Rodrigo Faustino
  Performance   Level  
Innovation award
Innovation award
Nominee: 21x

Winner: 2x

 

Details

Projeto de Sebo E-commerce com Microserviços

Este projeto é um exemplo de arquitetura de e-commerce implementado utilizando o conceito de microserviços. O objetivo é demonstrar a separação de responsabilidades entre diferentes serviços que compõem a aplicação, como autenticação, gerenciamento de produtos e gateway de API.

Estrutura do Projeto

A estrutura do projeto é dividida em três partes principais:

  1. Frontend: Responsável pela interface do usuário, onde as requisições são enviadas ao `API Gateway` para serem encaminhadas aos microserviços apropriados.
  2. API Gateway: Age como intermediário entre o frontend e os microserviços, redirecionando as requisições de acordo com o endpoint solicitado.
  3. Microserviços: - backend-auth: Gerencia as funcionalidades de autenticação e registro de usuários. - backend-produtos: Responsável pelo gerenciamento de produtos, incluindo operações de CRUD (Create, Read, Update, Delete).

Endpoints dos Microserviços

API Gateway

  • Porta: `8000`
  • Base URL: `http://localhost:8000`
  • Encaminha requisições para os microserviços apropriados com base no endpoint.

backend-auth

  • Porta: `1000`
  • Base URL: `http://localhost:1000`
  • Responsável pela autenticação e registro de usuários.
  • Endpoints: - `/auth/register` - `/auth/login`

backend-produtos (esse serviço pode ser dividio em dois)

  • Porta: `2000`
  • Base URL: `http://localhost:2000`
  • Gerencia o catálogo de produtos e operações relacionadas.
  • Endpoints: - `/products` - `/purchased-products` - `/checkout` - `/admin/reservations` - `/admin/update-status` - `/admin/remove-reservation` - `/admin/sales`

Configuração do Projeto

Configuração do Frontend

No frontend, o arquivo de configuração config.js está localizado em frontend/js/componentes/utils/config.js. Ele define a base URL para a API Gateway:

const config = {
    baseURL: 'http://localhost:8000'
};

export default config;

Execução Local

Para rodar a aplicação localmente, cada microserviço deve ser executado em uma porta diferente, como especificado acima. - O API Gateway deve rodar na porta 8000. - Frontend na porta 5500. - O backend-auth na porta 1000. - O backend-produtos na porta 2000.

Caso suba para produção cada serviço deve ficar em um domínio ou subdominio diferentes, ex: meusite.com enviando para api.meusite.com onde se conecta com auth.meusite.com e produtos.meusite.com, e também alterar as politicas de cors de cada serviço.

O que são Microserviços?

Microserviços são uma abordagem de arquitetura de software que se baseia na divisão de uma aplicação em um conjunto de serviços pequenos, cada um executando uma função específica e comunicando-se entre si por meio de APIs. Cada microserviço é autônomo e pode ser desenvolvido, implantado e escalado de forma independente, no caso desse projeto o serviço produtos ainda pode ser separado mais para as buscas dos frontend publico e as buscas e atualizações do frontend administrativo.

Vantagens dos Microserviços

  • Escalabilidade: Cada microserviço pode ser escalado independentemente, de acordo com suas necessidades específicas.
  • Desenvolvimento Independente: Diferentes equipes podem trabalhar em diferentes microserviços sem interferir umas nas outras.
  • Resiliência: Falhas em um microserviço não afetam diretamente os outros serviços, aumentando a resiliência da aplicação como um todo.
  • Desempenho Otimizado: Cada microserviço pode ser otimizado e configurado de acordo com suas necessidades específicas, melhorando o desempenho geral da aplicação.
  • Flexibilidade Tecnológica: Cada microserviço pode ser desenvolvido usando diferentes linguagens de programação ou tecnologias, conforme a melhor adequação à sua função específica.

Este projeto demonstra uma implementação simples de um sistema de "e-commerce" usando a arquitetura de microserviços. Embora o sistema esteja em um ambiente de desenvolvimento local, a estrutura é configurada para fácil escalabilidade e adaptação em ambientes de produção. Este exemplo serve como um ponto de partida para explorar mais profundamente as vantagens e desafios da arquitetura de microserviços.


Screenshots (12)  
  • frontend/img/66a9160d9c7df.jpg
  • frontend/img/66a969936697e.jpg
  • frontend/img/66abbb6937b7d.jpg
  • frontend/img/66abc27736cb4.jpg
  • frontend/img/66abd7da2208c.jpg
  • frontend/img/66abd902ebf9e.jpg
  • frontend/img/95e5e1e21398e7ff7585bda334f535e9.jpg
  • frontend/img/eu.jpg
  • frontend/img/js-course.jpg
  • frontend/img/php-course.jpg
  • frontend/img/prototipo-mobile.jpg
  • frontend/img/python-course.jpg
  Files folder image Files (100)  
File Role Description
Files folder image.github (1 directory)
Files folder image.scannerwork (1 file)
Files folder imageapigateway (2 files, 1 directory)
Files folder imagebackend-auth (5 files, 3 directories)
Files folder imagebackend-produtos (5 files, 3 directories)
Files folder imagefrontend (2 files, 4 directories)
Accessible without login Plain text file readme.md Doc. Documentation
Accessible without login Plain text file start_apigateway.bat Data Auxiliary data
Accessible without login Plain text file start_backend_auth.bat Data Auxiliary data
Accessible without login Plain text file start_backend_produtos.bat Data Auxiliary data
Accessible without login Plain text file start_frontend.bat Data Auxiliary data
Accessible without login Plain text file start_servicos.bat Data Auxiliary data

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:42
This week:0
All time:10,876
This week:43Up