Git Product home page Git Product logo

produtos's Introduction

README

Gerenciamento de Produtos

Este é o terceiro projeto que fizemos na Campus Code.

Trata-se de uma representação minimalista de um sistema de gerenciamento de produtos e suas dependências.

O sistema está dividido em duas partes, interface com o usuário e uma API que interage com outras aplicações externas.

Na interface do usuário, o mesmo é capaz de cadastrar categorias, produtos e planos com seus devidos preços e suas periodicidades.

Já a API é responsável por enviar dados no formato JSON do conteúdo cadastrado no banco de dados.

Inicialização: Para iniciar a aplicação basta utilizar o comando bin/setup via terminal.

Gems usadas em produção

  • LocaStyle (CSS)
  • Devise (Autenticação)
  • Paperclip (Upload de imagens)
  • Jquery (Gerenciamento dinâmico de DOM)

Gems usadas para testes

  • Rspec Rails (TDD)
  • Capybara (TDD)
  • Simplecov (Cobertura de testes)
  • Rubocop (Boas práticas no código)
  • Factory Bot Rails (Otimização de código)

Para o projeto, o time utilizou o trello como referência e organização de forma que cada história individualmente gerasse valor ao projeto.
https://trello.com/b/xjccfS5P/time-produtos-qsd

Instalação

Faça o download ou clone o código fonte do projeto:

git clone http://vps1474.publiccloud.com.br/qsd18/produtos.git

Para inicializar a aplicação, dentro do diretório, execute no terminal:

bin/setup

Configuração

Foi criado um arquivo de configuração /config/products.yml.sample. Arquivo de configuração da porta onde será executada a aplicação.

Configuração padrão:
http://localhost:3001

Este arquivo deverá ser ser copiado e removido a extesão .sample.

/config/products.yml

Login

Por padrão é criado um usuário para acessar a aplicação

TEAM

Carlos Sechi

Davi Carvalho

Italo Almeida

Luiz Gustavo Venarusso

Thiago Morais

API

Categoria

GET /api/categories ( Retorna todas categorias )

Sucesso

status 200

{
   "categories":[
      {
         "id":1,
         "name":"Hospedagem",
         "description":"Domínio grátis e sites ilimitados"
      },
      {
         "id":2,
         "name":"Crie seu site",
         "description":"Criador de site"
      }
   ]
}
Falha

status 404

{
   "message":"Nenhuma categoria encontrada"
}

GET /api/categories/[:category_id] ( Retorna uma categoria específica )

Sucesso

status 200

{
   "categories":{
      "id":1,
      "name":"Hospedagem",
      "description":"Domínio grátis e sites ilimitados"
   }
}
Falha

status 404

{
   "message":"Nenhuma categoria encontrada"
}

Produtos

GET /api/categories/[:category_id]/products ( Retorna todos os produtos de uma categoria )

Sucesso

status 200

{
   "categories":{
      "id":"1"
   },
   "products":[
      {
         "id":1,
         "name":"Hospedagem",
         "description":"Hospedagem ilimitada",
         "product_key":"HOSP123",
         "product_category_id":1,
         "contract":"contrato123",
        "icon_url":"http://localhost:3001/system/products/icons/000/000/001/thumb.png?1518627073"
      },
      {
         "id":2,
         "name":"Hospedagem",
         "description":"Hospedagem básica",
         "product_key":"HOSP124",
         "product_category_id":1,
         "contract":"contrato124",
         "icon_url":"http://localhost:3001/system/products/icons/000/000/001/thumb.png?1518627073"
      }
   ]
}
Falha

status 404

{
   "categories":{
      "id":1
   },
   "products":[
   ]
}

GET /api/products/:id ( Retorna um produto específico )

Sucesso

status 200

{
   "products":{
      "id":1,
      "name":"Hospedagem",
      "description":"Hospedagem ilimitada",
      "product_key":"HOSP123",
      "product_category_id":1,
      "contract":"contrato123",
      "icon_url":"http://localhost:3001/system/products/icons/000/000/001/thumb.png?1518627073"
   }
}
Falha

status 404

{
   "message":"Nenhum produto encontrado"
}

Planos

GET /api/products/[:product_id]/product_plans (Retorna todos os planos de um produto)

Sucesso

status 200

{
   "products":{
      "id":"1"
   },
   "plans":[
      {
         "id":1,
         "product_id":1,
         "name":"Hospedagem Ilimitada I",
         "status":true
      }
   ]
}

GET /api/product_plans/:id ( Retorna um plano específico )

Sucesso

status 200

{
   "plans":{
      "id":1,
      "product_id":1,
      "name":"Hospedagem Ilimitada I"
      "status":"true"
   }
}
Falha

status 404

{
   "message":"Nenhum plano encontrado"
}

Preços e Periodicidades dos Planos

GET /api/product_plans/[:product_plan_id]/plan_prices (Retorna todos os planos de um produto)

Sucesso

status 200

{
  "plans":"1",
  "prices":[
     {
        "id":1,
        "product_plan_id":1,
        "value":"100.0",
        "periodicity":{
           "id":1,
           "name":"Anual",
           "period":12
        }
     },
     {
        "id":2,
        "product_plan_id":1,
        "value":"100.0",
        "periodicity":{
           "id":2,
           "name":"Mensal",
           "period":1
        }
     }
  ]
}
Falha

status 404

{
   "plans": 1,
   "prices":[
   ]
}

produtos's People

Contributors

clsechi avatar luizvenarusso avatar zederson avatar alanrrb avatar

Watchers

James Cloos avatar  avatar

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.