PHPackages                             uspdev/assinatura - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. uspdev/assinatura

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

uspdev/assinatura
=================

Assinatura eletrônica no âmbito da USP

1.0.10(1y ago)0221GPL-2.0-or-laterPHP

Since Mar 12Pushed 1y ago8 watchersCompare

[ Source](https://github.com/uspdev/assinatura)[ Packagist](https://packagist.org/packages/uspdev/assinatura)[ RSS](/packages/uspdev-assinatura/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (5)Versions (12)Used By (0)

### O que a aplicação que usa a biblioteca vai fazer?

[](#o-que-a-aplicação-que-usa-a-biblioteca-vai-fazer)

\##Para instalar o pacote basta rodar

```

1 - Guardar o arquivo original na pasta storage da aplicação, suponha que o arquivo venha de um formulaŕio *$request->file('file')* exemplo:

    $path_arquivo = $request->file('file')->store('SUA-PASTA-NO-STORAGE');

2 - Colocar metadados do arquivo original na tabela *arquivos* da biblioteca assinaturas, exemplo:

    $original_name = $request->file('file')->getClientOriginalName();
    $checksum = # VERIFICAR COMO CALCULAR o checksum!!!

    use Uspdev\Assinatura\Models\Arquivo;
    $arquivo = new Arquivo;
    $arquivo->path_arquivo = $path_arquivo;
    $arquivo->original_name = $original_name;
    $arquivo->checksum = $checksum;
    $arquivo->save();

3 - Ainda na aplicação, informar as pessoas que vão assinar o documento *$arquivo_id*. Exemplo com um assinante USP e um externo:

    use Uspdev\Assinatura\Models\Assinatura;
    $assinante_usp = new Assinatura;
    $assinante_usp->arquivo_id = $arquivo_id;
    $assinante_usp->nome = $nome_usp;
    $assinante_usp->email = $email_usp;
    $assinante_usp->codpes = $codpes_usp;
    $assinante_usp->ordem_assinatura = 1;
    $assinante_usp->save();

    $assinante_externo = new Assinatura;
    $assinante_externo->nome = $nome_externo;
    $assinante_externo->email = $email_externo;
    $assinante_externo->arquivo_id = $arquivo_id;
    $assinante_externo->ordem_assinatura = 2;
    $assinante_externo->save();

### O que a biblioteca vai fazer?

Ao ser registrado uma nova linha na tabela *assinaturas*, um Observer vai disparar uma ação para cada linha nova:

- Geração do código de validação: verificar se há alguma linha anterior com o mesmo código de arquivo, se existir, copiar o código de validação. Se não existir, gerar um código de validação.

- Caso 1 - tem o campo número USP no novo registro:

  1. Disparar um email para essa pessoa avisando que há um documento para ser assinado
  2. Na biblioteca assinatura, deve existir uma rota, controller e view para listas os documentos que uma determinada pessoa tem para assinar.
  3. Na mesma página acima ter um botão para assinar, preenchendo: data_assinatura, gerar um arquivo novo (a partir do arquivo original) com as assinaturas e guardar no storage, populando o campo caminho_arquivo_assinado.
  4. Guardar o hash/checksum do arquivo gerado.

- Caso 2 - não tem o campo número USP no novo registro:

  1. Gerar uma UrlTemporaria para essa pessoa assinar e enviar essa url por email
  2. Deve existir uma rota, controller e view assinar AQUELE documento específico que a pessoa que entrou pela UrlTemporaria para gerar o arquivo assinado pelo sistema.
  3. Guardar o hash/checksum do arquivo gerado.

- Página de consulta:

A biblioteca deve fornecer uma rota/controller/view que retorna o arquivo mais recente assinado baseado no codigo_validacao. No arquivo assinado fornecer esse link para consulta {{ env('APP_URL') }}/consulta;

### Voltando a aplicação

Como a aplicação pega o documento assinado tendo o *$arquivo_id*:

    use Uspdev\Assinatura\AssinaturaService;

    $ultimo_documento = AssinaturaService::ultimo_documento($arquivo_id);

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 62.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~20 days

Total

11

Last Release

588d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8a59480189a3ba1aa8355cb434880695569433f5d1c9e375e8238d5ff1a56beb?d=identicon)[uspdev](/maintainers/uspdev)

---

Top Contributors

[![thiagogomesverissimo](https://avatars.githubusercontent.com/u/908508?v=4)](https://github.com/thiagogomesverissimo "thiagogomesverissimo (5 commits)")[![pcalvesUSP](https://avatars.githubusercontent.com/u/42939800?v=4)](https://github.com/pcalvesUSP "pcalvesUSP (3 commits)")

### Embed Badge

![Health badge](/badges/uspdev-assinatura/health.svg)

```
[![Health](https://phpackages.com/badges/uspdev-assinatura/health.svg)](https://phpackages.com/packages/uspdev-assinatura)
```

###  Alternatives

[42coders/document-templates

Document template management package.

19939.5k](/packages/42coders-document-templates)[the42coders/workflows

This Package allows you to automate your Laravel Application from your Backend.

2652.3k](/packages/the42coders-workflows)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
