Skip to main content

Modulo para analise de dados de oficinas automoveis

Project description

Mads Analise Oficinas

Biblioteca Python para gestao e analise de dados de oficinas automoveis.

O modulo trabalha em memoria e disponibiliza funcoes para:

  • registo e listagem de utilizadores, oficinas, categorias e compras;
  • analise estatistica de compras e faturacao;
  • visualizacao em mapa;
  • exportacao para JSON e CSV.

Instalacao

A partir do PyPI

pip install mads-analise-oficinas

Importacao

from MadsAnaliseOficinas import *

Tambem podes importar funcoes especificas:

from MadsAnaliseOficinas import addUser, addCatOficina, addOficina, registarCompra

Estrutura de dados (em memoria)

O modulo mantem quatro estruturas globais:

  • utilizadores (dict)
  • categoriasOficinas (list)
  • oficinas (dict)
  • compras (dict)

Isto significa que os dados existem apenas durante a execucao do programa. Para persistir informacao, usa as funcoes de exportacao.

Fluxo recomendado

  1. Registar categorias de oficina com addCatOficina.
  2. Registar oficinas com addOficina.
  3. Registar utilizadores com addUser.
  4. Registar compras com registarCompra.
  5. Consultar listagens, estatisticas, mapa e exportacao.

API Principal

Registos

addUser(nome, nif, dataNascimento, genero)

Regista um utilizador.

Parametros:

  • nome: texto (apenas letras e espacos)
  • nif: texto numerico com 9 digitos
  • dataNascimento: formato YYYY-MM-DD
  • genero: M, F ou Outro

Saida:

  • imprime erros de validacao, ou mensagem de sucesso

addCatOficina(categoria, cor)

Regista uma categoria de oficina com uma cor para uso no mapa.

Parametros:

  • categoria: texto com pelo menos 3 caracteres
  • cor: uma das cores permitidas pelo Folium (ex.: blue, red, green)

Saida:

  • imprime erros de validacao, ou mensagem de sucesso

addOficina(nif, nome, categoria, latitude, longitude, morada, cidade, codigoPostal, horario)

Regista uma oficina.

Validacoes relevantes:

  • nif unico com 9 digitos
  • categoria tem de existir em categoriasOficinas
  • latitude entre -90 e 90
  • longitude entre -180 e 180
  • codigoPostal no formato XXXX-XXX

registarCompra(nifUtilizador, nifOficina, valor, descricao, dataCompra, catCompra)

Regista uma compra associada a utilizador e oficina.

Parametros-chave:

  • dataCompra: YYYY-MM-DD
  • catCompra: P (Produto) ou S (Servico)

Regras:

  • valor maior que 0
  • NIFs devem existir
  • evita compras duplicadas com os mesmos dados principais

Listagens

As funcoes de listagem apresentam tabelas com pandas e IPython.display:

  • listarCategorias()
  • listarOficinas(nif=None, nome=None, categoria=None, cidade=None)
  • listarUtilizador(nif=None, nome=None, genero=None)
  • listarCompras(idCompra=None, nifUtilizador=None, nifOficina=None, categoria=None, valorMin=None, valorMax=None, dataInicio=None, dataFim=None)

Mapa

mapa()

Gera visualizacao de oficinas no mapa com Folium.

Comportamento:

  • monta pontos com base nas oficinas registadas;
  • usa categoria/cor definida em categoriasOficinas;
  • guarda ficheiro mapa.html;
  • apresenta o mapa no ambiente interativo.

Estatisticas

  • verTotalOficinas(): total de oficinas registadas
  • verTotalUtilizadores(): total de utilizadores registados
  • consultarVolumeFaturação(nif=None): volume de faturacao total ou por oficina
  • consultarMaisAdquirido(top=5): top de descricoes mais adquiridas
  • listasVolumeVendas(top=10): ranking de oficinas por volume de vendas
  • visualizarEvolucaoDespesas(nifUtilizador=None): grafico temporal das despesas

Exportacao

  • exportarParaJSON(): exporta os dados para dados_exportados.json
  • exportarParaCSV(): exporta para
    • utilizadores.csv
    • oficinas.csv
    • compras.csv
    • categoriasOficinas.csv

Exemplo completo

from MadsAnaliseOficinas import *

addCatOficina("Mecanica", "blue")
addCatOficina("Pintura", "red")

addOficina(
		nif="501234567",
		nome="Oficina Centro",
		categoria="Mecanica",
		latitude=41.235,
		longitude=-8.620,
		morada="Rua Central 100",
		cidade="Maia",
		codigoPostal="4470-123",
		horario="09:00-18:00",
)

addUser("Maria Silva", "123456789", "1990-01-15", "F")

registarCompra(
		nifUtilizador="123456789",
		nifOficina="501234567",
		valor=79.90,
		descricao="Mudanca de oleo",
		dataCompra="2026-03-01",
		catCompra="S",
)

listarCompras()
consultarVolumeFaturação()
exportarParaCSV()

Publicacao no PyPI

python -m build
python -m twine check dist/*
python -m twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mads_analise_oficinas-0.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mads_analise_oficinas-0.1.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file mads_analise_oficinas-0.1.0.tar.gz.

File metadata

  • Download URL: mads_analise_oficinas-0.1.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for mads_analise_oficinas-0.1.0.tar.gz
Algorithm Hash digest
SHA256 21f6c8c14a2852ea711be6e8cf4c2c6940217f2363b84d3dc538cecf3b2a6212
MD5 febd037f3610ea8eecaffbb466f25970
BLAKE2b-256 1bb6d2437e24fc54789a5a5fb4a57f167564954e435a595659d1b9987f47abe8

See more details on using hashes here.

File details

Details for the file mads_analise_oficinas-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mads_analise_oficinas-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6380e9187800fa3a3316d8b1506d733d20d58647fd07ff99f95c1aa79c76824
MD5 13161465d99480e3c0bee0677e39e888
BLAKE2b-256 d6a81d66676b17039cec6377e1c32774d24d91c10551ed80d84297dd394dfad6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page