Skip to content
@petshop-system

petshop-system

Seja bem-vindo ao Projeto

Petshop-System!


Aqui desenvolvemos e aprimoramos continuamente um sistema eficiente para gerenciar o fluxo de processos em petshops.

Para mais informações do projeto:

  1. Introdução
  2. Design
  3. Stack
  4. Aplicações
  5. Padrão de Versionamento

 

 


1 - Introdução

Este sistema de Petshop apresenta uma arquitetura distribuída com integração entre diferentes tecnologias. Inicialmente, a autenticação é gerenciada por uma aplicação em Java, proporcionando segurança no acesso ao sistema. A aplicação principal do petshop é implementada em Go, aproveitando a eficiência e desempenho dessa linguagem.

Para promover a comunicação assíncrona e escalável entre os diferentes componentes, utiliza-se uma fila com Apache Kafka. Isso possibilita o processamento de eventos de maneira eficiente, além de fornecer uma abordagem de mensageria robusta.

Em fases futuras do desenvolvimento, está prevista a implementação de uma interface frontend para melhor interação com os usuários. Essa camada permitirá uma experiência mais amigável e intuitiva, facilitando a utilização do sistema.

2 - Design

2.1 - Design System

2.2 - Design de tela e fluxo

Para atender a concepção das telas e do fluxo da aplicação será utilizado o Figma.

3 - Stack

Para atender a solução proposta, as seguintes tecnologias estão sendo utilizadas:

  • Docker
  • Go (Golang)
  • Java (Spring Boot)
  • Kafka (Message)
  • PostgreSQL
  • Python
  • Redis (Cache)
  • Swift (IOS)
  • Flutter

4 - Aplicações

A solução que o projeto Petshop-System proporciona é suportada por um conjunto de aplicações que combinadas possibilitam que as atividades sejam executadas.

Aplicação Host Porta Linguagem
petshop-api localhost,petshop-api 5001 Go
petshop-api-gateway localhost,petshop-api-gateway 9999 Go
petshop-admin-api localhost,petshop-admin-api 5002 Java
petshop-auth-api localhost, petshop-auth-api 5004 Java
petshop-bff-desktop localhost,petshop-bff-desktop 9998 Java
petshop-bff-mobile localhost,petshop-bff-mobile 9997 Go
petshop-message-api localhost,petshop-message-api 5003 Java
petshop-reports-api localhost undefined Python
petshop-system-ios undefined N/A Swift (IOS)
petshop-system-flutter undefined N/A Flutter (Híbrido)

Para iniciar as aplicações de forma padronizada se faz necessário configurar as variáveis de ambiente DEV_ENV_FOLDER e PETSHOP_GO_FOLDER. Essas variáveis devem conter as pastas padrões de desenvolvimento, desta forma, facilitando e padronizando a utilização do docker-compose para inicializar as aplicações.

$ export DEV_ENV_FOLDER=[PASTA RAÍZ DE DESENVOLVIMENTO] // ex.: /home/[MINHA_PASTA]/Desenvolvimento
$ export PETSHOP_GO_FOLDER=$GOPATH/src/github.com/petshop-system

Estrutura esperada.

DEV_ENV_FOLDER
| [JAVA_PROJECTS]
| - go
| -- src
| --- github.com
| ---- petshop-system
| ----- [GO_PROJECTS]

OBS: pode-se adicionar (exportar) as variáveis de ambiente ao arquivo bashrc ou zshrc.

Exemplo no arquivo bashrc ou zshrc:

export DEV_ENV_FOLDER=/home/[MINHA_PASTA]/Desenvolvimento
export PETSHOP_GO_FOLDER=$GOPATH/src/github.com/petshop-system
PATH=$DEV_ENV_FOLDER:$PETSHOP_GO_FOLDER:$PATH

4.1 - Arquivos

5 - Padrão de Versionamento

O objetivo principal deste tópico é alinhar a utilização das boas práticas de versionamento, proporcionando um fluxo de trabalho consistente e eficiente para o desenvolvimento do projeto.

5.1 - Branches

Branches Descrição
master Representa a versão de produção estável.

(a develop é mescrlada aqui assim que estiverem pronta pra produção)
develop Branch de desenvolvimento contínuo.

(as features são mescladas aqui assim que estiverem prontas para teste)
feature/#numero-da-issue Para alterações na documentação.

(criadas a partir da develop e mescladas de volta nela quando concluídas)
bugfix/#numero-da-issue Para melhorias estéticas ou formatação do código.

(criadas a partir da develop)

Iniciando uma branch para desenvolvimento

  • Certifique-se de estar na branch develop:
git checkout develop
  • Atualize a branch develop com as últimas alterações do repositório remoto:
git pull origin develop
  • Crie um novo branch para o seu pull request:
git checkout -b feature/#numero_da_issue

5.2 - Commits

Commit Descrição
feat: Para novas funcionalidades.
fix: Para correção de bugs
docs: Para alterações na documentação.
style: Para melhorias estéticas ou formatação do código.
refactor: Para refatorações no código que não corrigem bugs nem adicionam funcionalidades.
test: Para adição ou modificação de testes.

Criando o commit

  • Realize e confirme as alterações necessárias:
git commit -m "feat: Descrição da sua feature"
  • Envie o branch com as alterações para o repositório remoto:
git push origin feature/#numero_da_issue

5.3 - Configuração Inicial

5.3.1 - Atualizar o Repositório Local

Objetivo: Garantir que todas as informações do repositório remoto estejam atualizadas localmente.

git fetch

5.3.2 - Verificar as Branches Remotas Disponíveis

Objetivo: Listar todas as branches remotas disponíveis.

git branch -r
  • Certifique-se de que a branch develop está presente nas branches remotas.

5.3.3 - Configurar o Upstream da Branch Develop

Objetivo: Estabelecer o rastreamento da branch local develop com a branch remota origin/develop.

  • Caso não exista a branch, siga criando localmente a branch develop rastreando a branch remota origin/develop:
git checkout -b develop origin/develop

5.4 - Trabalhando com Features

5.4.1 - Criar uma nova branch para a Issue

Objetivo: Isolar o desenvolvimento de novas funcionalidades.

git checkout -b feature/#numero_da_issue

5.4.2 - Mesclar a Feature de Volta na Branch Develop

Objetivo: Integrar as novas funcionalidades na branch principal de desenvolvimento (develop).

git checkout develop
git merge feature/#numero_da_issue

5.4.3 - Atualizar o Repositório Remoto

Objetivo: Sincronizar as alterações feitas na branch develop com o repositório remoto.

git push origin develop

5.5 - Corrigindo Bugs (Bugfix)

Identificação e correção de bugs são tratados com um fluxo específico.

5.5.1 - Criar uma Nova Branch para o Bugfix

Objetivo: Isolar a correção de bugs específicos.

git checkout -b bugfix/#numero_da_issue

5.5.2 - Mesclar o Bugfix de Volta na Branch Develop:

Objetivo: Integrar correções na branch principal de desenvolvimento.

git checkout develop
git merge feature/#numero_da_issue

5.5.3 - Atualizar o Repositório Remoto:

Objetivo: Sincronizar as alterações feitas na branch develop com o repositório remoto.

git push origin develop

Popular repositories Loading

  1. petshop-api petshop-api Public

    API to handle the flow process.

    Go 3

  2. petshop-system-ios petshop-system-ios Public

    Application to ios petshop system.

    Swift 2

  3. petshop-message-api petshop-message-api Public

    An API to produce messages and working as a fail fast.

    Java 1

  4. petshop-admin-api petshop-admin-api Public

    To handler the administration resources

    Java 1

  5. petshop-bff-desktop petshop-bff-desktop Public

    Project for Petshop System to support a desktop devices.

    Java 1

  6. petshop-auth-api petshop-auth-api Public

    Java 1

Repositories

Showing 9 of 9 repositories
  • petshop-admin-api Public

    To handler the administration resources

    petshop-system/petshop-admin-api’s past year of commit activity
    Java 1 0 10 0 Updated Nov 18, 2024
  • petshop-system-ios Public

    Application to ios petshop system.

    petshop-system/petshop-system-ios’s past year of commit activity
    Swift 2 0 1 0 Updated Sep 28, 2024
  • .github Public
    petshop-system/.github’s past year of commit activity
    PLpgSQL 0 0 1 0 Updated Aug 16, 2024
  • petshop-system/petshop-auth-api’s past year of commit activity
    Java 1 0 0 0 Updated Jul 28, 2024
  • petshop-bff-mobile Public

    Project for Petshop System to support a mobile devices.

    petshop-system/petshop-bff-mobile’s past year of commit activity
    Go 1 0 2 1 Updated Jul 14, 2024
  • petshop-api Public

    API to handle the flow process.

    petshop-system/petshop-api’s past year of commit activity
    Go 3 MIT 0 29 2 Updated Jul 14, 2024
  • petshop-system/petshop-api-gateway’s past year of commit activity
    PLpgSQL 0 0 1 1 Updated Jul 13, 2024
  • petshop-bff-desktop Public

    Project for Petshop System to support a desktop devices.

    petshop-system/petshop-bff-desktop’s past year of commit activity
    Java 1 0 0 0 Updated Feb 23, 2024
  • petshop-message-api Public

    An API to produce messages and working as a fail fast.

    petshop-system/petshop-message-api’s past year of commit activity
    Java 1 MIT 0 0 0 Updated Jan 16, 2024

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…