Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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-management

composer 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 App

php -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)