PHPackages                             escolalms/pencil-spaces - 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. [API Development](/categories/api)
4. /
5. escolalms/pencil-spaces

ActivePackage[API Development](/categories/api)

escolalms/pencil-spaces
=======================

Escola Headless LMS Pencil Spaces integration

0.0.3(2y ago)04.3k↓40%1MITPHPPHP &gt;=8.0

Since Aug 7Pushed 2y ago1 watchersCompare

[ Source](https://github.com/EscolaLMS/Pencil-Spaces)[ Packagist](https://packagist.org/packages/escolalms/pencil-spaces)[ RSS](/packages/escolalms-pencil-spaces/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (7)Versions (4)Used By (1)

Pencil-Spaces
=============

[](#pencil-spaces)

[![swagger](https://camo.githubusercontent.com/bf46f50926ef796b1bb0b6e41af746af52ff3aacdffb0533450f3b614a7334a2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63756d656e746174696f6e2d737761676765722d677265656e)](https://escolalms.github.io/Pencil-Spaces/)[![codecov](https://camo.githubusercontent.com/80a800cf7f8cdf6a03c8aba7bca98ecf916814207ef5525f0eca4e14daea5804/68747470733a2f2f636f6465636f762e696f2f67682f4573636f6c614c4d532f50656e63696c2d5370616365732f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d4e52414e34523841475a)](https://codecov.io/gh/EscolaLMS/Pencil-Spaces)[![phpunit](https://github.com/EscolaLMS/Consultation-Access/actions/workflows/test.yml/badge.svg)](https://github.com/EscolaLMS/Pencil-Spaces/actions/workflows/test.yml)[![downloads](https://camo.githubusercontent.com/977b86e6c2b7a9341a4d3b6f60f12f603ca960b0b35f24a4d86bd55db675c871/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6573636f6c616c6d732f70656e63696c2d737061636573)](https://packagist.org/packages/escolalms/pencil-spaces)[![downloads](https://camo.githubusercontent.com/1c231d64126faf0aade911f174033dfea4bd2066e8dce8902557eb67c09b11cc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6573636f6c616c6d732f70656e63696c2d737061636573)](https://packagist.org/packages/escolalms/pencil-spaces)[![downloads](https://camo.githubusercontent.com/8eed1d670e32403776fdbb1fec94420abcc88113d7a53f20dec8b6eac9dbbd93/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6573636f6c616c6d732f70656e63696c2d737061636573)](https://packagist.org/packages/escolalms/pencil-spaces)[![Maintainability](https://camo.githubusercontent.com/a7a11bc808d5fc966372dd6a3df45e9e09ea7d864c9d376b55f0abbc15bbda30/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f30633965323539336662333065323034386639352f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/EscolaLMS/Pencil-Spaces/maintainability)[![phpstan](https://github.com/EscolaLMS/Pencil-Spaces/actions/workflows/phpstan.yml/badge.svg)](https://github.com/EscolaLMS/Pencil-Spaces/actions/workflows/phpstan.yml)

What does it do
---------------

[](#what-does-it-do)

This package is used for integration with [Pencil Spaces](https://www.pencilspaces.com/).

Currently available features:

- API user creation
- Space creation
- Generating a link for the logged-in user

Installing
----------

[](#installing)

- `composer require escolalms/pencil-spaces`
- `php artisan migrate`

Configuration
-------------

[](#configuration)

You can configure the package by adding values to your `.env` file

```
PENCIL_SPACES_API_KEY=api-key
PENCIL_SPACES_API_URL=https://api-url.com

```

or using Facade

```
use Illuminate\Support\Facades\Config;

Config::set('pencil_spaces.api_key', 'api_key');
Config::set('pencil_spaces.api_url', 'https://api-url.com');

```

or `/api/admin/config` endpoint

```
$this->actingAs($this->user, 'api')->json(
    'POST',
    '/api/admin/config',
    [
        'config' => [
            [
                'key' => 'pencil_spaces.api_key',
                'value' => 'api_key',
            ],
            [
                'key' => 'pencil_spaces.api_url',
                'value' => 'https://api-url.com',
            ],
        ]
    ]
);
```

Example
-------

[](#example)

Use `EscolaLms\PencilSpaces\Facades\PencilSpace` Facade for integration.

- Generate a direct login link for an API-managed user =&gt; `PencilSpace::getDirectLoginUrl(int $userId, string $redirectUrl = null)`
- Create Space =&gt; `PencilSpace::createSpace(CreatePencilSpaceResource $createSpaceResource)`

An account in Pencil Space will be created for users who don't have one. The table `pencil_space_accounts` will store the `userId` and `email` returned from Pencil Space.

Endpoints
---------

[](#endpoints)

The endpoints are defined in [![swagger](https://camo.githubusercontent.com/bf46f50926ef796b1bb0b6e41af746af52ff3aacdffb0533450f3b614a7334a2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63756d656e746174696f6e2d737761676765722d677265656e)](https://escolalms.github.io/Pencil-Spaces/)

Tests
-----

[](#tests)

Run `./vendor/bin/phpunit` to run tests. Test details [![codecov](https://camo.githubusercontent.com/80a800cf7f8cdf6a03c8aba7bca98ecf916814207ef5525f0eca4e14daea5804/68747470733a2f2f636f6465636f762e696f2f67682f4573636f6c614c4d532f50656e63696c2d5370616365732f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d4e52414e34523841475a)](https://codecov.io/gh/EscolaLMS/Pencil-Spaces)

You can use `PencilSpace::fake()` in your tests. Requests to the API will be mocked, and you will be able to test your feature.

Listeners
---------

[](#listeners)

This package doesn't listen for any events.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 83.3% 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 ~95 days

Total

3

Last Release

817d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c857f3115c790c573d0617d7e9ba4011269ef7b9dfdb003dc4388846a62b14f7?d=identicon)[qunabu](/maintainers/qunabu)

---

Top Contributors

[![mako321](https://avatars.githubusercontent.com/u/59456825?v=4)](https://github.com/mako321 "mako321 (5 commits)")[![qunabu](https://avatars.githubusercontent.com/u/214608?v=4)](https://github.com/qunabu "qunabu (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/escolalms-pencil-spaces/health.svg)

```
[![Health](https://phpackages.com/badges/escolalms-pencil-spaces/health.svg)](https://phpackages.com/packages/escolalms-pencil-spaces)
```

###  Alternatives

[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

2.9k34.0M112](/packages/darkaonline-l5-swagger)[echolabsdev/prism

A powerful Laravel package for integrating Large Language Models (LLMs) into your applications.

2.3k388.3k10](/packages/echolabsdev-prism)[escolalms/headless-h5p

Headless H5P Laravel REST API

2732.6k8](/packages/escolalms-headless-h5p)[sburina/laravel-whmcs-up

WHMCS API client and user provider for Laravel

271.3k](/packages/sburina-laravel-whmcs-up)

PHPackages © 2026

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