Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rudeboyone/library-management
Sistema de gerenciamento de biblioteca feito em php, seguindo o padrão de sintaxe psr-2, teste unitário e de integração com phpunit e documentação com phpdoc
https://github.com/rudeboyone/library-management
api api-rest php phpdoc phpunit system
Last synced: about 1 month ago
JSON representation
Sistema de gerenciamento de biblioteca feito em php, seguindo o padrão de sintaxe psr-2, teste unitário e de integração com phpunit e documentação com phpdoc
- Host: GitHub
- URL: https://github.com/rudeboyone/library-management
- Owner: RudeBoyOne
- Created: 2024-11-15T18:39:03.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-11-15T19:06:35.000Z (about 1 month ago)
- Last Synced: 2024-11-15T19:36:03.288Z (about 1 month ago)
- Topics: api, api-rest, php, phpdoc, phpunit, system
- Language: HTML
- Homepage: https://rudeboyone.github.io/library-management/
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Live eCommerce - Teste para PHP
## Sistema de Gerenciamento de Biblioteca
### Descrição do Projeto
MyLibrary é um sistema de gerenciamento de bibliotecas faz a gestão de livros, empréstimos, usuários e seções. Ele permite criar, atualizar e remover livros, gerenciar operações de empréstimo respeitando os limites dos usuários e garantir a disponibilidade dos livros. O sistema também inicializa a base de dados com dados de teste necessários e trata de exceções específicas para assegurar um funcionamento eficiente. Além disso, possui controladores que organizam as requisições HTTP para os serviços apropriados, proporcionando uma interface de uso eficiente e organizada.### Requisitos atendidos
1. ✅ **Classes e Objetos**
2. ✅ **Encapsulamento**
3. ✅ **Herança e Polimorfismo**
3.1 Classe abstrata `User` herdada por `Student` e `Professor` para tratamento diferenciado. - **Student**: Pode fazer um empréstimo por vez. - **Professor**: Pode fazer até 3 empréstimos por vez.
4. ✅ **DDD (Domain-Driven Design)**
```
app/library/
├── App/
│ ├── Application/
│ │ ├── Controllers/
│ │ │ ├── BookController.php
│ │ │ ├── LoanController.php
│ │ └── Utils/
│ │ ├── Response.php
│ ├── Domain/
│ │ ├── Entities/
│ │ ├── Repositories/
│ │ ├── Services/
│ ├── Infrastructure/```
5. ✅ **Persistência**
6. ✅ **Test Coverage**
![Tests Coverage](documentation/testsCoverage.png)#### para mais detalhes sobre a cobertura dos testes 👇🏼
- 6.1. ir para diretório coverageTests
``` shell
cd coverageTests
```
- 6.2 subir o servidor utilizando o PHP
```shell
php -S localhost:8000
```
- 6.3 acessar via browser todos os detalhes sobre a cobertura dos testes
[http://localhost:8000](http://localhost:8000)7. ✅ **sintaxe PSR-2**
8. ✅ **Documentação**[Code Documentation](https://rudeboyone.github.io/library-management/)
> Dependências: php 8.3 e sqlite 3
1. cloar o repositório
```
git clone https://github.com/RudeBoyOne/library-management.git
```2. entre no diretório do projeto
```shell
cd library-managementcomposer install
```3. execute o comando para popular o banco de dados
```shell
php App/Infrastructure/Persistence/Database/initialize_db.php
```4. entrar no diretório App e subir o servidor utilizando o PHP
```shell
cd Appphp -S localhost:8080
```3. Import no postman o arquivo da collection com todas as requisições http para testar o sistema
como importar:
- [Documentação postman, como importar uma collection](https://learning.postman.com/docs/getting-started/importing-and-exporting/importing-data/)
- [Arquivo Collection]()
4. Realizar as requisições para os endpoints dos recursos
![Image example Run Collection Postman](documentation/requests.png)