{"id":17008922,"url":"https://github.com/barbaracalderon/fmt-library-manager","last_synced_at":"2026-04-19T13:31:28.867Z","repository":{"id":228097878,"uuid":"773173521","full_name":"barbaracalderon/fmt-library-manager","owner":"barbaracalderon","description":"Library restful API project developed in Java, Spring Boot, using JDK17, PostgreSQL with DB schema.","archived":false,"fork":false,"pushed_at":"2024-04-22T05:13:12.000Z","size":153,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T12:42:48.628Z","etag":null,"topics":["java","jpa-hibernate","maven","postgresql","project-lombok","rest-api","restful-api","spring-boot","spring-jpa","spring-web"],"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/barbaracalderon.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-03-16T23:44:55.000Z","updated_at":"2024-04-22T05:13:16.000Z","dependencies_parsed_at":"2024-04-09T20:25:47.006Z","dependency_job_id":"cb57f0e7-d249-4ebd-ad69-2c45a900dc3b","html_url":"https://github.com/barbaracalderon/fmt-library-manager","commit_stats":null,"previous_names":["barbaracalderon/fmt-library-manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/barbaracalderon/fmt-library-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Ffmt-library-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Ffmt-library-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Ffmt-library-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Ffmt-library-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barbaracalderon","download_url":"https://codeload.github.com/barbaracalderon/fmt-library-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Ffmt-library-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32009047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["java","jpa-hibernate","maven","postgresql","project-lombok","rest-api","restful-api","spring-boot","spring-jpa","spring-web"],"created_at":"2024-10-14T05:42:16.054Z","updated_at":"2026-04-19T13:31:28.851Z","avatar_url":"https://github.com/barbaracalderon.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Library Manager Restful API\n\nEste projeto é uma API RESTful para o gerenciamento de uma biblioteca simples. Utiliza JDK 17 e banco de dados \nPostgreSQL com o esquema de banco de dados especificado. \n\n\n## Autor\n\nSou a Barbara Calderon, desenvolvedora de software.\n- [Github](https://www.github.com/barbaracalderon)\n- [Linkedin](https://www.linkedin.com/in/barbaracalderondev)\n- [Twitter](https://www.x.com/bederoni)\n\n## Schema do Banco de Dados\n\nAbaixo, representação do banco de dados para o projeto desenvolvido.\n\n![fmt-library-manager-schema.png](fmt-library-manager-schema.png)\n\n## Endpoints da API\n\n### /bibliotecario\n| Método | Endpoint                            | Descrição                                                     |\n|--------|-------------------------------------|---------------------------------------------------------------|\n| POST   | `/bibliotecario`                    | Cria um novo bibliotecário.                                   |\n| GET    | `/bibliotecario`                    | Retorna todos os bibliotecários cadastrados.                  |\n| GET    | `/bibliotecario/{idBibliotecario}` | Retorna o bibliotecário com o ID especificado.                |\n| PUT    | `/bibliotecario/{idBibliotecario}` | Atualiza os dados do bibliotecário com o ID especificado.     |\n| DELETE | `/bibliotecario/{idBibliotecario}` | Remove o bibliotecário com o ID especificado.                 |\n| GET    | `/bibliotecario/emails`             | Retorna os emails de todos os bibliotecários cadastrados.      |\n| PUT    | `/bibliotecario/{idBibliotecario}/senha` | Atualiza a senha do bibliotecário com o ID especificado. |\n\n\n### /emprestimo\n| Método | Endpoint                           | Descrição                                                     |\n|--------|------------------------------------|---------------------------------------------------------------|\n| POST   | `/emprestimo`                      | Cria um novo empréstimo.                                      |\n| GET    | `/emprestimo`                      | Retorna todos os empréstimos cadastrados.                     |\n| GET    | `/emprestimo/{idEmprestimo}`       | Retorna o empréstimo com o ID especificado.                   |\n| PUT    | `/emprestimo/{idEmprestimo}`       | Atualiza os dados do empréstimo com o ID especificado.        |\n| DELETE | `/emprestimo/{idEmprestimo}`       | Remove o empréstimo com o ID especificado.                    |\n\n\n### /livro\n| Método | Endpoint                      | Descrição                                                     |\n|--------|-------------------------------|---------------------------------------------------------------|\n| POST   | `/livro`                      | Cria um novo livro.                                           |\n| GET    | `/livro`                      | Retorna todos os livros cadastrados.                          |\n| GET    | `/livro/{idLivro}`            | Retorna o livro com o ID especificado.                        |\n| PUT    | `/livro/{idLivro}`            | Atualiza os dados do livro com o ID especificado.             |\n| DELETE | `/livro/{idLivro}`            | Remove o livro com o ID especificado.                         |\n| GET    | `/livro/titulos`              | Retorna todos os títulos dos livros cadastrados.              |\n| GET    | `/livro/autores`              | Retorna todos os autores dos livros cadastrados.              |\n\n\n### /membro\n| Método | Endpoint                      | Descrição                                                     |\n|--------|-------------------------------|---------------------------------------------------------------|\n| POST   | `/membro`                     | Cria um novo membro.                                          |\n| GET    | `/membro`                     | Retorna todos os membros cadastrados.                         |\n| GET    | `/membro/{idMembro}`          | Retorna o membro com o ID especificado.                       |\n| PUT    | `/membro/{idMembro}`          | Atualiza os dados do membro com o ID especificado.            |\n| DELETE | `/membro/{idMembro}`          | Remove o membro com o ID especificado.                        |\n| GET    | `/membro/nomes`               | Retorna todos os nomes dos membros cadastrados.               |\n| GET    | `/membro/telefones`           | Retorna todos os telefones dos membros cadastrados.           |\n| PUT    | `/membro/{idMembro}/telefone` | Atualiza o telefone do membro com o ID especificado.          |\n\n\n### /visitante\n| Método | Endpoint                       | Descrição                                                     |\n|--------|--------------------------------|---------------------------------------------------------------|\n| POST   | `/visitante`                   | Cria um novo visitante.                                       |\n| GET    | `/visitante`                   | Retorna todos os visitantes cadastrados.                      |\n| GET    | `/visitante/{idVisitante}`     | Retorna o visitante com o ID especificado.                    |\n| PUT    | `/visitante/{idVisitante}`     | Atualiza os dados do visitante com o ID especificado.         |\n| DELETE | `/visitante/{idVisitante}`     | Remove o visitante com o ID especificado.                     |\n\n\n## Tecnologias Utilizadas\n\n- **Spring Boot Starter Web**: Framework para o desenvolvimento de aplicativos da web em Java.\n- **Spring Boot DevTools**: Ferramenta para desenvolvimento mais produtivo no ambiente Spring Boot.\n- **Project Lombok**: Biblioteca que reduz a verbosidade do código Java.\n- **Spring Boot Starter Data JPA**: Facilita a implementação de persistência de dados usando Spring Data e JPA.\n- **PostgreSQL**: Banco de dados relacional.\n- **Maven**: Gerenciador de dependências e construção de projetos.\n- **Java 17**: Versão da linguagem de programação Java utilizada no projeto.\n\n\n## Executando o Projeto\n\nAntes de executar o projeto, certifique-se de ter o JDK 17 e o PostgreSQL instalados em sua máquina.\n\n1. Clone o repositório do projeto:\n    ```bash\n    git clone git@github.com:barbaracalderon/fmt-library-manager.git\n    ```\n\n2. Acesse o diretório do projeto:\n    ```bash\n    cd fmt-library-manager\n    ```\n\n3. Configure o banco de dados PostgreSQL:\n\n    - Crie um banco de dados com o nome `fmt_library_manager_db` (sugestão)\n    - Insira suas configurações no arquivo `application.properties`:\n\n```properties\n# arquivo application.properties\nspring.application.name=library\nserver.port=8080\nspring.datasource.url=jdbc:postgresql://localhost:5432/fmt_library_manager_db\nspring.datasource.username=postgres\nspring.datasource.password=[digite sua senha]\nspring.datasource.driver-class-name=org.postgresql.Driver\nspring.jpa.properties.hibernate.format_sql=true\nspring.jpa.hibernate.ddl-auto=update\nspring.jpa.show-sql=true\n\n\n```\n\n4. Execute o projeto:\n    ```bash\n    ./mvnw spring-boot:run\n    ```\n\nO servidor será iniciado em http://localhost:8080.\n\n## Testando os Endpoints\n\nVocê pode testar os endpoints utilizando ferramentas como Postman, Insomnia ou cURL. Por exemplo, usando Insomnia:\n\n- Para listar todos os livros:\n    ```bash\n    GET http://localhost:8080/livro\n    ```\n\n- Para criar um novo livro:\n    ```bash\n    POST http://localhost:8080/livro\n\n    Body:\n    {\n      \"titulo\": \"Nome do livro\",\n      \"autor\": \"Nome do autor\",\n      \"anoPublicacao\": 1912\n    }\n    ```\n\nCertifique-se de substituir os valores de exemplo pelos valores reais.\n\n### Atividade\n\nEsta foi uma atividade desenvolvida individualmente por mim, Barbara Calderon.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarbaracalderon%2Ffmt-library-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarbaracalderon%2Ffmt-library-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarbaracalderon%2Ffmt-library-manager/lists"}