{"id":20650361,"url":"https://github.com/gabrielcruzrodrigues/sistema-concessionaria-java-spring","last_synced_at":"2026-04-10T13:31:36.831Z","repository":{"id":194409886,"uuid":"690740937","full_name":"gabrielcruzrodrigues/sistema-concessionaria-Java-Spring","owner":"gabrielcruzrodrigues","description":"Sistema para concessionaria utilizando como linguagem principal Java, juntamente como Spring Boot, Spring Data, Hibernate e Banco de dados Mysql","archived":false,"fork":false,"pushed_at":"2023-10-17T13:18:24.000Z","size":190,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T15:53:29.332Z","etag":null,"topics":["api","api-rest","authentication-backend","hibernate","java","jpa","jwt-authentication","jwt-token","mysql","spring","spring-boot","spring-mvc","spring-security"],"latest_commit_sha":null,"homepage":"","language":"Java","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/gabrielcruzrodrigues.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":"2023-09-12T19:26:44.000Z","updated_at":"2025-06-29T22:47:55.000Z","dependencies_parsed_at":"2025-03-09T20:33:27.228Z","dependency_job_id":"4c80fb7f-9f9a-4d26-bedf-fe24639ebae4","html_url":"https://github.com/gabrielcruzrodrigues/sistema-concessionaria-Java-Spring","commit_stats":null,"previous_names":["gabrielcruzrodrigues/sistemaautomotivo-java-spring-restfull","gabrielcruzrodrigues/sistema-concessionaria-java-spring-restfull","gabrielcruzrodrigues/sistema-concessionaria-java-spring"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gabrielcruzrodrigues/sistema-concessionaria-Java-Spring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcruzrodrigues%2Fsistema-concessionaria-Java-Spring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcruzrodrigues%2Fsistema-concessionaria-Java-Spring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcruzrodrigues%2Fsistema-concessionaria-Java-Spring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcruzrodrigues%2Fsistema-concessionaria-Java-Spring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielcruzrodrigues","download_url":"https://codeload.github.com/gabrielcruzrodrigues/sistema-concessionaria-Java-Spring/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcruzrodrigues%2Fsistema-concessionaria-Java-Spring/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31645221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","api-rest","authentication-backend","hibernate","java","jpa","jwt-authentication","jwt-token","mysql","spring","spring-boot","spring-mvc","spring-security"],"created_at":"2024-11-16T17:19:31.557Z","updated_at":"2026-04-10T13:31:36.801Z","avatar_url":"https://github.com/gabrielcruzrodrigues.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sistema-concessionaria-java-spring-rest\nSistema automotivo usando java, spring, e o recurso restFull em desenvolvimento\n\nO projeto é basicamente um sistema automotivo para gerenciamento de vendas, funcionarios, veículos, estoque e etc. (ainda em desenvolvimento)\n\n\u003cbr\u003e\n\n\n\u003cbr\u003e\n\n# Como rodar o projeto:\n\nO projeto já vem com carga inicial de dados, então vc já vai ter alguns registros no banco para poder manipular.\n\n1. Tenha o JDK17 instalado na sua maquina!\n2. Tenha o Mysql instalado na sua maquina!\n3. Dentro do MysqlServer, crie um banco de dados chamado system.\n4. Clone o projeto para um diretorio local.\n5. Abra o projeto em sua IDE de preferência e baixe as dependências.\n6. configure corretamente as variáveis de ambiente.\n7. Inicie o projeto!\n8. a configuração a seguir que fica dentro do arquivo `application.properties`, setando o perfil `local` fara a carga inicial de dados para o banco de dados, se precisar reiniciar o projeto, remova o perfil, para evitar o erro de duplicidade dos dados.\n```\nspring.profiles.active=local\n```\n9. Olhe como funciona a autenticação, para conseguir acessar os endpoints.\n\n\u003cbr\u003e\n\n# Authenticação\nO projeto contem atualmente 3 níveis de permissão: \n- ADMIN\n- SELLER\n- USER\n\nPor padrão, a carga inicial de dados vai gerar um usuario com a role `ADMIN` no banco de dados para que vc possa registrar novos usuários e fazer as modificações que quiser.\n\nO sistema foi construido usando o JWT para gerar tokens de segurança que são gerados após o usuário logar com sucesso. eles devem ser passados no cabeçalho da requisição para que as rotas sejam liberadas!\n```\n\"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzeXN...\" \n```\nlogin:\n* #### POST /login - status: 200\n*  apos logado, vc recebera um token para acessar as outras rotas.\u003cbr\u003e\nOBS: esse é o login padrão para o usuário que é criado na carga inicial de dados.\n```\n{\n    \"login\": \"user\",\n    \"password\": \"123456789\"\n}\n```\nregister:\n* #### POST /register - status: 200\n* endPoint para registrar um novo usuário no banco de dados, disponível apenas para ADMINs\n* OBS: para criar um novo usuário, é necessário passar o token de authenticação.\n```\n{\n    \"login\": \"bb\",\n    \"password\": \"123456789\",\n    \"role\": \"USER\"\n}\n```\n### Lista de permissões para cada role: \n- `ADMIN`\u003cbr\u003e\nacesso total ao sistema.\n\n- `SELLER`\u003cbr\u003e\nGET /clients \u003cbr\u003e\nGET /clients/{id} \u003cbr\u003e\nGET /clients/search/{cpf} \u003cbr\u003e\nPOST /clients \u003cbr\u003e\nPUT /clients/{id} \u003cbr\u003e\nGET /cars \u003cbr\u003e\nGET /cars/{id} \u003cbr\u003e\nPOST /sales \u003cbr\u003e\nGET /sales/client/{id} \u003cbr\u003e\nGET /sales/car/{id} \u003cbr\u003e\nGET /sales \u003cbr\u003e\n\n- `USER`\u003cbr\u003e\natualmente nenhuma permissão.\n\n\u003cbr\u003e\n\n# EndPoints\n\n\u003cbr\u003e\n\n# Clientes (clients)\n\n(endpoint com problemas)\n* #### // GET /clients - status: 200\n// Resgata todos os registros do banco de dados.\n\n====================================\n\n* #### GET /clients/:id - status: 200\n* Busca client por id.\n\n====================================\n\n* #### GET /clients/:cpf - status: 200\n* Busca client por cpf.\n\n====================================\n\n* #### POST /clients - status: 201\n* cria novo cliente.\n```\n{\n    \"name\": \"Davi\",\n    \"cpf\": \"00200009000\",\n    \"address\": \"Rua b, n: 56\",\n    \"phoneNumber\": \"00926881111\",\n    \"email\": \"con2ate@gmail.com\",\n    \"nationality\": \"BR\",\n    \"isActive\": true,\n    \"creditCompany\": 10.0,\n    \"monthlySalary\": 1236.0,\n    \"approvedFinancing\": false\n}\n```\n\n====================================\n\n* #### PUT /clients/:id - status: 200\n* Atualiza registro no banco de dados.\n```\n{\n    \"address\": \"Rua b, n: 56\",\n    \"cpf\": \"11111111111\",\n    \"email\": \"contyte@gmail.com\",\n    \"isActive\": true,\n    \"name\": \"Davi\",\n    \"nationality\": \"BR\",\n    \"phoneNumber\": \"00986881111\",\n    \"approvedFinancing\": false,\n    \"creditCompany\": 10.00,\n    \"monthlySalary\": 1236.00\n}\n```\n\n====================================\n\n* #### DELETE /clients/:id - status: 204\n* Deleta cliente do banco de dados.\n\n# Funcionários (employee)\n\n(endpoint com problemas)\n* #### // GET /employees - status: 200\n// Resgata todos os registros do banco de dados.\n\n====================================\n\n* #### GET /employees/:id - status: 200\n* Busca funcionário por id.\n\n====================================\n\n* #### POST /employees - status: 201\n* cria novo funcionário.\n```\n{\n    \"name\": \"Gabriel\",\n    \"cpf\": \"00200009000\",\n    \"address\": \"Rua b, n: 56\",\n    \"phoneNumber\": \"00926881111\",\n    \"email\": \"con2ate@gmail.com\",\n    \"nationality\": \"BR\",\n    \"isActive\": true,\n    \"creditCompany\": 10.0,\n    \"monthlySalary\": 1236.0,\n    \"approvedFinancing\": false,\n    \"area\": \"Engenheiro de Software\",\n    \"pcd\": false,\n    \"salary\": 2000,\n    \"sector\": \"Desenvolvimento Backend\",\n    \"workSchedule\": \"8:00 - 17:00\"\n}\n```\n\n====================================\n\n* #### PUT /employees/:id - status: 200\n* Atualiza registro do funcionário no banco de dados.\n```\n    {\n        \"name\": \"Gabriel\",\n        \"cpf\": \"0020069000\",\n        \"address\": \"Rua b, n: 56\",\n        \"phoneNumber\": \"60926881111\",\n        \"email\": \"con2a6e@gmail.com\",\n        \"nationality\": \"BR\",\n        \"isActive\": true,\n        \"sector\": \"Desenvolvimento Backend\",\n        \"workSchedule\": \"8:00 - 17:00\",\n        \"salary\": 2000.0,\n        \"pcd\": false,\n        \"area\": \"Engenheiro Java\"\n    }\n```\n\n====================================\n\n* #### DELETE /employees/:id - status: 204\n* Deleta funcionário do banco de dados.\n\n# Vendedores (Seller)\n\n(endpoint com problemas)\n* #### // GET /sellers - status: 200\n// Resgata todos os registros do banco de dados.\n\n====================================\n\n* #### GET /sellers/:id - status: 200\n* Busca vendedor por id.\n\n====================================\n\n* #### POST /sellers - status: 201\n* cria novo vendedor.\n```\n{\n    \"name\": \"Gabriel\",\n    \"cpf\": \"00207009000\",\n    \"address\": \"Rua b, n: 56\",\n    \"phoneNumber\": \"00927781111\",\n    \"email\": \"con277e@gmail.com\",\n    \"nationality\": \"BR\",\n    \"isActive\": true,\n    \"creditCompany\": 10.0,\n    \"monthlySalary\": 1236.0,\n    \"approvedFinancing\": false,\n    \"area\": \"Engenheiro de Software\",\n    \"pcd\": false,\n    \"salary\": 2000,\n    \"sector\": \"Desenvolvimento Backend\",\n    \"workSchedule\": \"8:00 - 17:00\",\n    \"quantitySales\": 70,\n    \"quantitySalesMonth\": 5,\n    \"valueTotalSalesMonth\": 55000,\n    \"cityWork\": \"Jequie\"\n}\n```\n\n====================================\n\n* #### PUT /sellers/:id - status: 200\n* Atualiza registro do vendedor no banco de dados.\n```\n{\n    \"name\": \"Gabriel\",\n    \"dateOfBirth\":\"2002-02-13\",\n    \"cpf\": \"75722172065\",\n    \"address\": \"Rua b, n: 56\",\n    \"phoneNumber\": \"00927781111\",\n    \"email\": \"con277e@gmail.com\",\n    \"nationality\": \"BR\",\n    \"isActive\": true,\n    \"creditCompany\": 10.0,\n    \"monthlySalary\": 1236.0,\n    \"approvedFinancing\": false,\n    \"area\": \"Engenheiro de Software\",\n    \"pcd\": false,\n    \"salary\": 2000,\n    \"sector\": \"Desenvolvimento Backend\",\n    \"workSchedule\": \"8:00 - 17:00\",\n    \"quantitySales\": 70,\n    \"quantitySalesMonth\": 5,\n    \"valueTotalSalesMonth\": 55000,\n    \"cityWork\": \"Jitauna\"\n}   \n```\n\n====================================\n\n* #### DELETE /sellers/:id - status: 204\n* Deleta vendedor do banco de dados.\n\n# Carros (cars)\n\n* #### // GET /cars - status: 200\n// Resgata todos os registros do banco de dados.\n\n====================================\n\n* #### GET /cars/:id - status: 200\n* Busca carro por id.\n\n====================================\n\n* #### POST /cars - status: 201\n* cria novo carro.\n```\n{\n    \"name\": \"Corsa\",\n    \"chassi\": \"12345671901234567\",\n    \"color\": \"Black\",\n    \"fuelConsumptionPerLiter\": 6,\n    \"isAvailable\": true,\n    \"isActive\": true,\n    \"mileage\": 100.56,\n    \"model\": \"25365asdf\",\n    \"motor\": \"gasolina\",\n    \"plate\": \"GHP1234\",\n    \"power\": 230,\n    \"stage\": \"NOVO\",\n    \"torque\": 60,\n    \"weight\": 1.00000,\n    \"automaticTransmission\": true,\n    \"cameraMonitoring\": true,\n    \"electricWindows\": true,\n    \"gps\": true,\n    \"hydraulicSteering\": true,\n    \"sensorsAndCameras\": true,\n    \"sunroof\": true,\n    \"traction\": true,\n    \"manufactureYear\": \"2002\"\n}\n```\n\n====================================\n\n* #### PUT /cars/:id - status: 200\n* Atualiza registro do carro no banco de dados.\n```\n{\n    \"name\": \"Celta\",\n    \"manufactureYear\":\"2000\",\n    \"chassi\": \"12245671901234567\",\n    \"color\": \"Black\",\n    \"fuelConsumptionPerLiter\": 6,\n    \"isActive\": true,\n    \"isAvailable\": true,\n    \"mileage\": 100.56,\n    \"model\": \"25365asdf\",\n    \"motor\": \"gasolina\",\n    \"plate\": \"GHP2234\",\n    \"power\": 230,\n    \"stage\": \"NOVO\",\n    \"torque\": 60,\n    \"weight\": 1.00000,\n    \"automaticTransmission\": true,\n    \"cameraMonitoring\": true,\n    \"electricWindows\": true,\n    \"gps\": true,\n    \"hydraulicSteering\": true,\n    \"sensorsAndCameras\": true,\n    \"sunroof\": true,\n    \"traction\": true\n}\n```\n\n====================================\n\n* #### DELETE /cars/:id - status: 204\n* Deleta carro do banco de dados.\n\n# Vendas (sales)\n\n* #### POST /sales - status: 201\n* cria nova venda.\n```\n{\n    \"seller\": {\n        \"id\": 1\n    },\n    \"client\": {\n        \"id\": 2\n    },\n    \"carId\": {\n        \"id\": 1\n    },\n    \"paymentMethod\": \"PIX\" (ou) \"CARTAO\" (OU) \"BOLETO\" (OU) \"DINHEIRO\"\n}\n```\n\n====================================\n\n* #### GET /sales - status: 200\n* Busca todas as vendas do banco de dados.\n\n====================================\n\n* #### GET /sales/seller/:id - status: 200\n* Busca todas as vendas relacionadas ao vendedor (seller) pelo id.\n\n====================================\n\n* #### GET /sales/client/:id - status: 200\n* Busca todas as vendas relacionadas ao cliente (client) pelo id.\n\n====================================\n\n* #### GET /sales/car/:id - status: 200\n* Busca todas as vendas relacionadas ao carro (client) pelo id.\n\n\n  \n(documentação em desenvolvimento)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielcruzrodrigues%2Fsistema-concessionaria-java-spring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielcruzrodrigues%2Fsistema-concessionaria-java-spring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielcruzrodrigues%2Fsistema-concessionaria-java-spring/lists"}