Git Product home page Git Product logo

controla_pet's Introduction

ControlaPet 🐶

ControlaPet é um Sistema de Gerenciamento de PetShops e Clinicas Veterinarias desenvolvido por:

  • Bruno Lima dos Santos
  • Isaque Felizardo
  • Lucas Alves Siqueira
  • Lucas Araujo de Oliveira
  • Nayara de Paula Muniz
  • Vitor Crepaldi Carlessi

Quickstart


Clone este repositório:

    git clone https://github.com/ControlaPet/controla_pet.git

Fluxo de Desenvolvimento da equipe

  • master - Branch utilizado somente para funcionalidades já testadas e aprovadas pelo cliente

  • develop - Branch que consiste no desenvolvimento atual da equipe

  • features - Demais funcionalidades que estão sendo desenvolvidas

alt text fonte: https://www.bitbull.it/blog/git-flow-come-funziona/gitflow-1.png

SEMPRE:

  • Para novas funcionalidades utilize: feature/nome_da_func
  • Para melhorias no codigo: bugfix/nome_da_correcao

Trabalhe na branch correta

Para visualizar todas as branches:

    git branch -a

Utilize uma branch já existente:

    git checkout <nome_da_branch>

Ou crie uma nova para a sua funcionalidade:

    git checkout -b <nome_da_branch>

    <Exemplo>
    git checkout -b DBconnection

Certifique-se de que sua branch está atualizada:

    git pull origin <nome_da_branch_mais_att>

    <Exemplo>
    git pull origin develop

Adicione suas credenciais

Para trabalhar com o projeto ControlaPet, crie um arquivo chamado .env na raiz do diretorio, e adicione as credenciais fornecidas pela equipe de desenvolvimento.


Rodando o projeto com Docker Compose

Docker é uma tecnologia que fornece containers que isolam processos, com a ajuda do Docker Compose é possível orquestrar containers e subir aplicações complexas com poucos comandos.

Instalação do Docker no Windows: https://docs.docker.com/docker-for-windows/install/

Instalação do Docker Compose no Linux: https://docs.docker.com/compose/install/

Iniciando o projeto

Atualize o repositorio local

    git pull origin develop

Para iniciar o projeto:

    docker-compose up

Ao rodar o projeto, o mysql será iniciado e, logo após, a app migrará para o banco de dados e irá subir o servidor.

Makefile

Através do make, é possível executar instruções nomeadas e contidas em um arquivo conhecido como Makefile. Para executar um comando make digite:

    make <comando_do_makefile>

Exemplo:

    make clean

Comandos possíveis: clean - Limpa o repositorio local de todos os arquivos de cache

mysql-docker - Acessa o container do MYSQL

app-docker - Acessa o container da aplicação

docker-admin-group - Permissiona o docker colocando-o no grupo de admin do Linux

create-docker-network - Cria a network utilizada pelos containers

docker-clean - Apaga todas as imagens e containers do docker

container-dump-db - Popula o banco de dados

container-createsuperuser - Cria um super usuario no Django

container-drop-db - Derruba o banco de dados

container-create-db - Cria um novo banco de dados

Fluxo:

    make container-drop-db
    make container-create-db
    docker-compose up mysql
    docker-compose up app
    make container-createsuperuser

Informações adicionais:

Para acessar containers utilize:

    docker exec -it <container-name> bash

    <Exemplo>
    docker exec -it sys_controla_pet bash

Para derrubar containers:

    docker-compose down

Não esqueça:

  • Sem as credenciais (.env), o projeto não será iniciado
  • Sem privilegios de administrador talvez algum erro seja exibido
  • O MYSQL estará rodando na porta 3308, para evitar conflitos com a porta padrão do mysql local, portanto ao optar por softwares como Mysql Workbench utilize:
    • Host: localhost
    • Port: 3308
    • User: root
    • Password: (A mesma da credencial)

Rodando o projeto sem docker

Obs: O MYSQL deve estar instalado.

Apaga todos os arquivos da pasta migrations, exceto init.py, de cada APP, em seguida execute o comando a seguir para identificar migrações:

    python manage.py makemigrations

Em seguida, digite o comando abaixo para realizar as migrações para o banco de dados:

    python manage.py migrate

Ao editar arquivos, digite o comando abaixo para identificar erros:

    python manage.py check

Para criar um usuario que acesse a pagina administrativa utilize:

    python manage.py createsuperuser

Para rodar o projeto digite:

    python manage.py runserver

Por padrão o servidor é iniciado no endereço: http://localhost:8000/


Subindo alterações

Certifique-se novamente de que está utilizando a versão mais atual do cógido:

    git pull origin <nome_da_branch_mais_att>

    <Exemplo>
    git pull origin develop

Para verificar o situação atual do repositório

    git status

Se houver alterações a serem commitadas NÃO utilizar " git add .", digite:

    git add <nome_do_arquivo_alterado>

Para commitar as alterações por favor digite uma MENSAGEM COERENTE com o que foi desenvolvido:

    git commit -m "Mensagem Coerente"

    <Exemplo>
    git commit -m "Conexao com o Banco de Dados remoto"

Para subir suas alterações ao GitHub, digite:

    git push origin <nome_da_sua_branch>

    <Exemplo>
    git push origin DBconnection

JAMAIS:

  • Dê push direto no develop e master
  • Utilize o develop/master como branch para desenvolver
  • Digite mensagens em commits sem sentido
  • Force um commit com conflitos

Obrigado!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.