{"id":23101736,"url":"https://github.com/francislauriano/sge_flask","last_synced_at":"2026-04-17T03:02:38.704Z","repository":{"id":260712313,"uuid":"879568705","full_name":"FrancisLauriano/sge_flask","owner":"FrancisLauriano","description":"Sistema de gerenciamento de pedidos de uma loja online desenvolvido em Python com microframework Flask.","archived":false,"fork":false,"pushed_at":"2024-11-06T01:04:22.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T09:25:11.489Z","etag":null,"topics":["blueprint","fernet-cryptography","flask","jwt","marshmallow","postgresql","python","sqlalchemy-orm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FrancisLauriano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-28T06:41:25.000Z","updated_at":"2024-11-06T01:04:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"5eba22c4-bb0c-4432-973c-27a30a8a3000","html_url":"https://github.com/FrancisLauriano/sge_flask","commit_stats":null,"previous_names":["francislauriano/sge_flask"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrancisLauriano%2Fsge_flask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrancisLauriano%2Fsge_flask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrancisLauriano%2Fsge_flask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrancisLauriano%2Fsge_flask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FrancisLauriano","download_url":"https://codeload.github.com/FrancisLauriano/sge_flask/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247080509,"owners_count":20880281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blueprint","fernet-cryptography","flask","jwt","marshmallow","postgresql","python","sqlalchemy-orm"],"created_at":"2024-12-16T23:54:05.462Z","updated_at":"2026-04-17T03:02:33.657Z","avatar_url":"https://github.com/FrancisLauriano.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eSGE - Sistema de Gerenciamento Empresarial\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=Python\u0026message=3.10\u0026color=blue\u0026style=for-the-badge\u0026logo=python\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=Flask\u0026message=2.1\u0026color=green\u0026style=for-the-badge\u0026logo=flask\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=PostgreSQL\u0026message=13\u0026color=4169E1\u0026style=for-the-badge\u0026logo=postgresql\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=SQLAlchemy\u0026message=1.4\u0026color=orange\u0026style=for-the-badge\u0026logo=python\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=JWT\u0026message=2.0\u0026color=black\u0026style=for-the-badge\u0026logo=jsonwebtokens\"/\u003e\n  \u003cimg src=\"http://img.shields.io/static/v1?label=STATUS\u0026message=CONCLUIDO\u0026color=green\u0026style=for-the-badge\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=License\u0026message=MIT\u0026color=blue\u0026style=for-the-badge\"/\u003e\n\u003c/p\u003e\n\n\u003e Status do Projeto: :heavy_check_mark: (concluido) | :warning: (em desenvolvimento) | :x: (não iniciada)\n\n### Tópicos\n\n:small_blue_diamond: [Descrição do Projeto](#descrição-do-projeto-writing_hand) :heavy_check_mark:  \n\n:small_blue_diamond: [Objetivos do Projeto](#objetivos-do-projeto-dart) :heavy_check_mark:  \n\n:small_blue_diamond: [Funcionalidades](#funcionalidades-video_game) :heavy_check_mark:  \n\n:small_blue_diamond: [Arquitetura](#arquitetura-triangular_ruler-straight_ruler) :heavy_check_mark:\n\n:small_blue_diamond: [Rotas - Endpoints](#rotas---endpoints-arrows_clockwise) :heavy_check_mark:  \n\n:small_blue_diamond: [Criar e ativar ambiente virtual](#criar-e-ativar-ambiente-virtual-white_check_mark)\n\n:small_blue_diamond: [Instalação das depedências](#instalação-das-depedências-arrow_down_small)\n\n:small_blue_diamond: [Executar Migrações](#executar-migrações-arrow_forward)\n\n:small_blue_diamond: [Executar App](#executar-app-arrow_forward)\n\n:small_blue_diamond: [Linguagens, Tecnologias e Bibliotecas Utilizadas](#linguagens-tecnologias-dependências-e-libs-utilizadas-hammer_and_wrench-gear-books)  \n\n---\n\n\n## Descrição do Projeto :writing_hand:\n\nO **Sistema de Gerenciamento Empresarial (SGE)** é uma solução para simplificar e centralizar o gerenciamento de operações de uma empresa, incluindo o controle de clientes, produtos, categorias, pedidos e detalhes dos pedidos. Utilizando uma arquitetura de camadas e uma API RESTful, o SGE oferece uma plataforma escalável e segura para o gerenciamento empresarial.\n\n---\n\n## Objetivos do Projeto :dart:\n\n**1. Centralizar o Gerenciamento**  \n- Centralizar e otimizar a gestão de clientes, produtos e pedidos.\n\n**2. Automação de Processos**  \n- Automatizar processos como cadastro de pedidos e atualização de estoque.\n\n**3. Facilitar a consulta e gerenciamento** \n- Facilitar a consulta e gerenciamento de dados relacionados a clientes, produtos e pedidos.\n\n**4. Segurança e Autenticação**  \n- Utilizar JWT para proteger os dados e assegurar operações seguras.\n\n**5. Facilidade de Integração**  \n- Proporcionar uma API RESTful robusta que permita integração com outros sistemas.\n\n---\n\n## Funcionalidades :video_game:\n\n- **Cadastro e Gerenciamento de Clientes:** Cadastro, consulta, atualização e exclusão de clientes.\n- **Cadastro e Gerenciamento de Produtos:** Cadastro, consulta, atualização e exclusão de produtos, associando-os a categorias.\n- **Cadastro e Gerenciamento de Categorias:** Cadastro, consulta, atualização e exclusão de categorias.\n- **Criação e Atualização de Pedidos:** Criação de pedidos vinculados a clientes, com detalhes específicos para cada produto.\n- **Autenticação e Autorização com JWT:** Segurança para acesso e operações sensíveis.\n- **Criptografia de Dados Sensíveis:** Utilização de `Fernet` para criptografar informações sensíveis.\n\n---\n## Arquitetura :triangular_ruler: :straight_ruler:\n\nO sistema é estruturado em uma arquitetura de camadas que separa responsabilidades e facilita a manutenção e escalabilidade. A aplicação usa o framework Flask para o backend e é desenvolvida com PostgreSQL como banco de dados relacional.\n\n### Descrição da Arquitetura\n\n- **Configuração**: Configurações de ambiente e variáveis sensíveis são carregadas de um arquivo `.env`.\n- **Banco de Dados**: PostgreSQL, gerenciado pelo SQLAlchemy.\n- **Autenticação**: Implementação de autenticação JWT para proteger endpoints e operações sensíveis.\n- **Camadas da Aplicação**:\n  - **Models**: Define a estrutura das tabelas e relacionamentos no banco de dados.\n  - **Controllers**: Implementa a lógica de cada endpoint e orquestra as operações.\n  - **Services**: Contém a lógica de negócios.\n  - **Middlewares**: Configuração de CORS e autenticação.\n  - **Rotas**: Gerencia as rotas da API e define os endpoints.\n\n---\n\n## Rotas - Endpoints :arrows_clockwise:\n\n### Autenticação\n\n#### Login\n- **POST** `/login`\n  - **Descrição**: Autentica o usuário e retorna um token JWT.\n  - **Body**:\n    ```json\n    {\n      \"email\": \"string\",\n      \"senha\": \"string\"\n    }\n    ```\n  - **Resposta**:\n    ```json\n    {\n      \"token\": \"string\"\n    }\n    ```\n\n---\n\n### Clientes\n\n#### Criar Cliente\n- **POST** `/clientes`\n  - **Descrição**: Cadastra um novo cliente.\n  - **Body**:\n    ```json\n    {\n      \"nome\": \"string\",\n      \"email\": \"string\"\n    }\n    ```\n\n#### Listar Clientes\n- **GET** `/clientes`\n  - **Descrição**: Lista todos os clientes.\n\n#### Buscar Cliente por ID\n- **GET** `/clientes/{id}`\n  - **Descrição**: Busca um cliente específico pelo ID.\n\n#### Atualizar Cliente\n- **PUT** `/clientes/{id}`\n  - **Descrição**: Atualiza as informações de um cliente.\n\n#### Excluir Cliente\n- **DELETE** `/clientes/{id}`\n  - **Descrição**: Exclui um cliente específico.\n\n---\n\n### Produtos\n\n#### Criar Produto\n- **POST** `/produtos`\n  - **Descrição**: Cadastra um novo produto.\n  - **Body**:\n    ```json\n    {\n      \"nome\": \"string\",\n      \"id_categoria\": \"string\"\n    }\n    ```\n\n#### Listar Produtos\n- **GET** `/produtos`\n  - **Descrição**: Lista todos os produtos.\n\n#### Buscar Produto por ID\n- **GET** `/produtos/{id}`\n  - **Descrição**: Busca um produto específico pelo ID.\n\n#### Atualizar Produto\n- **PUT** `/produtos/{id}`\n  - **Descrição**: Atualiza as informações de um produto.\n\n#### Excluir Produto\n- **DELETE** `/produtos/{id}`\n  - **Descrição**: Exclui um produto específico.\n\n---\n\n### Categorias\n\n#### Criar Categoria\n- **POST** `/categorias`\n  - **Descrição**: Cadastra uma nova categoria.\n\n#### Listar Categorias\n- **GET** `/categorias`\n  - **Descrição**: Lista todas as categorias.\n\n#### Buscar Categoria por ID\n- **GET** `/categorias/{id}`\n  - **Descrição**: Busca uma categoria específica pelo ID.\n\n#### Atualizar Categoria\n- **PUT** `/categorias/{id}`\n  - **Descrição**: Atualiza as informações de uma categoria.\n\n#### Excluir Categoria\n- **DELETE** `/categorias/{id}`\n  - **Descrição**: Exclui uma categoria específica.\n\n---\n\n### Pedidos\n\n#### Criar Pedido\n- **POST** `/pedidos`\n  - **Descrição**: Cria um novo pedido para um cliente específico.\n  - **Body**:\n    ```json\n    {\n      \"id_cliente\": \"string\"\n    }\n    ```\n\n#### Listar Pedidos\n- **GET** `/pedidos`\n  - **Descrição**: Lista todos os pedidos.\n\n#### Buscar Pedido por ID\n- **GET** `/pedidos/{id}`\n  - **Descrição**: Busca um pedido específico pelo ID.\n\n#### Atualizar Pedido\n- **PUT** `/pedidos/{id}`\n  - **Descrição**: Atualiza as informações de um pedido.\n\n#### Excluir Pedido\n- **DELETE** `/pedidos/{id}`\n  - **Descrição**: Exclui um pedido específico.\n\n---\n\n### Detalhes do Pedido\n\n#### Criar Detalhe do Pedido\n- **POST** `/detalhe_pedidos`\n  - **Descrição**: Adiciona um detalhe a um pedido específico.\n  - **Body**:\n    ```json\n    {\n      \"id_pedido\": \"string\",\n      \"id_produto\": \"string\",\n      \"valor\": \"decimal\",\n      \"desconto\": \"decimal\"\n    }\n    ```\n\n#### Listar Detalhes do Pedido\n- **GET** `/detalhe_pedidos`\n  - **Descrição**: Lista todos os detalhes dos pedidos.\n\n#### Buscar Detalhe do Pedido por ID\n- **GET** `/detalhe_pedidos/{id}`\n  - **Descrição**: Busca um detalhe de pedido específico pelo ID.\n\n#### Atualizar Detalhe do Pedido\n- **PUT** `/detalhe_pedidos/{id}`\n  - **Descrição**: Atualiza as informações de um detalhe do pedido.\n\n#### Excluir Detalhe do Pedido\n- **DELETE** `/detalhe_pedidos/{id}`\n  - **Descrição**: Exclui um detalhe específico do pedido.\n\n---\n\n## Configuração e Instalação :gear:\n\n### Criar e ativar ambiente virtual :white_check_mark:\n\n```bash\n$ python -m venv venv\n```\n\n**MacOS/Linux:**\n```bash\n$ source venv/bin/activate\n```\n\n**Windows:**\n```bash\n$ venv\\Scripts\\activate \n```\n\n### Instalação das depedências :arrow_down_small:\n\n```bash\n$ pip install -r requirements.txt\n```\n\n### Executar migrações :arrow_forward:\n\n```bash\n$ flask db upgrade\n```\n\n### Executar app :arrow_forward:\n\n**development:**\n```bash\n$ flask run\n```\n\n```bash\nRunning on http://127.0.0.1:5000/\n```\n\n## Linguagens, tecnologias, dependências e libs utilizadas :hammer_and_wrench: :gear: :books:\n\n- [Python](https://www.python.org/downloads/)\n- [Flask](https://flask.palletsprojects.com/en/3.0.x/installation/)\n- [PostgreSQL](https://www.postgresql.org/download/)\n- [Draw.io](https://www.drawio.com/)\n- [SQLAlchemy](https://docs.sqlalchemy.org/en/20/s)\n- [Marshmallow](https://marshmallow.readthedocs.io/en/stable/)\n- [Flask-JWT-Extended](https://flask-jwt-extended.readthedocs.io/en/latest/)\n- [Fernet - symmetric encryption](https://cryptography.io/en/latest/fernet/)\n- [Postman](https://www.postman.com/downloads/)\n- [Git](https://git-scm.com/downloads)\n- [GitHub](https://github.com/)\n\n...\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancislauriano%2Fsge_flask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrancislauriano%2Fsge_flask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancislauriano%2Fsge_flask/lists"}