PHPackages                             escolalms/topic-type-project - 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. escolalms/topic-type-project

ActivePackage

escolalms/topic-type-project
============================

Escola Headless LMS Topic Type Project

0.1.0(2y ago)05.5k↓40%2MITPHPPHP &gt;=7.4

Since Mar 6Pushed 2y ago1 watchersCompare

[ Source](https://github.com/EscolaLMS/Topic-Type-Project)[ Packagist](https://packagist.org/packages/escolalms/topic-type-project)[ RSS](/packages/escolalms-topic-type-project/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (7)Versions (12)Used By (2)

Topic Type Project
==================

[](#topic-type-project)

[![swagger](https://camo.githubusercontent.com/bf46f50926ef796b1bb0b6e41af746af52ff3aacdffb0533450f3b614a7334a2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63756d656e746174696f6e2d737761676765722d677265656e)](https://escolalms.github.io/Topic-Type-Project/)[![codecov](https://camo.githubusercontent.com/a7668e688198a84755bc8028d17be0c002415d632633a343d62fec3c5afc0f7a/68747470733a2f2f636f6465636f762e696f2f67682f4573636f6c614c4d532f546f7069632d547970652d50726f6a6563742f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d4e52414e34523841475a)](https://codecov.io/gh/EscolaLMS/Topic-Type-Project)[![phpunit](https://github.com/EscolaLMS/Topic-Type-Project/actions/workflows/test.yml/badge.svg)](https://github.com/EscolaLMS/Topic-Type-Project/actions/workflows/test.yml)[![downloads](https://camo.githubusercontent.com/cae01568908f937606b3e1ee869d28ef65155184805e87eb57e660f90fffbf45/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6573636f6c616c6d732f746f7069632d747970652d70726f6a656374)](https://packagist.org/packages/escolalms/topic-type-project)[![downloads](https://camo.githubusercontent.com/ac09bc6fc1418420c00bf4946fd807867c6e07c6bbefb0daccb623d55dc2766d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6573636f6c616c6d732f746f7069632d747970652d70726f6a656374)](https://packagist.org/packages/escolalms/topic-type-project)[![downloads](https://camo.githubusercontent.com/4a5b34fd00078694e89934a845e3dd7cd0a44a81504f7de3bedae617946e5203/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6573636f6c616c6d732f746f7069632d747970652d70726f6a656374)](https://packagist.org/packages/escolalms/topic-type-project)[![Maintainability](https://camo.githubusercontent.com/a7a11bc808d5fc966372dd6a3df45e9e09ea7d864c9d376b55f0abbc15bbda30/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f30633965323539336662333065323034386639352f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/EscolaLMS/Topic-Type-Project/maintainability)

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

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

This package is another [TopicType](https://github.com/EscolaLMS/topic-types). It allows students to upload their solutions as files. This type is used for building headless Course.

The package by default grants students permissions to add and view their own solutions within the course. Administrators have permissions to display the list of all student solutions, as well as to download and delete them.

Installing
----------

[](#installing)

- `composer require escolalms/topic-type-project`
- `php artisan migrate`
- `php artisan db:seed --class="EscolaLms\TopicTypeProject\Database\Seeders\TopicTypeProjectPermissionSeeder"`

Endpoints
---------

[](#endpoints)

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

Tests
-----

[](#tests)

Run `./vendor/bin/phpunit` to run tests. Test details [![codecov](https://camo.githubusercontent.com/a7668e688198a84755bc8028d17be0c002415d632633a343d62fec3c5afc0f7a/68747470733a2f2f636f6465636f762e696f2f67682f4573636f6c614c4d532f546f7069632d547970652d50726f6a6563742f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d4e52414e34523841475a)](https://codecov.io/gh/EscolaLMS/Topic-Type-Project)

Events
------

[](#events)

- `ProjectSolutionCreatedEvent` - This event is dispatched when the user has uploaded a solution

You can use the [escolalms/templates-email](https://github.com/EscolaLMS/Templates-Email/tree/main/src/TopicTypeProject) package, which listens to this event and sends an email.

Listeners
---------

[](#listeners)

This package does not listen for any events.

Permissions
-----------

[](#permissions)

Permissions are defined in [seeder](https://github.com/EscolaLMS/Topic-Type-Project/blob/main/database/seeders/TopicTypeProjectPermissionSeeder.php).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 57.1% 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 ~43 days

Recently: every ~76 days

Total

9

Last Release

823d ago

PHP version history (2 changes)0.0.1PHP ^7.4|^8.0|^8.1

0.0.8PHP &gt;=7.4

### 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 (12 commits)")[![qunabu](https://avatars.githubusercontent.com/u/214608?v=4)](https://github.com/qunabu "qunabu (4 commits)")[![dicani0](https://avatars.githubusercontent.com/u/58490533?v=4)](https://github.com/dicani0 "dicani0 (2 commits)")[![dyfero](https://avatars.githubusercontent.com/u/59400506?v=4)](https://github.com/dyfero "dyfero (2 commits)")[![ArtKob](https://avatars.githubusercontent.com/u/108077902?v=4)](https://github.com/ArtKob "ArtKob (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/escolalms-topic-type-project/health.svg)

```
[![Health](https://phpackages.com/badges/escolalms-topic-type-project/health.svg)](https://phpackages.com/packages/escolalms-topic-type-project)
```

###  Alternatives

[anourvalar/eloquent-serialize

Laravel Query Builder (Eloquent) serialization

11120.2M21](/packages/anourvalar-eloquent-serialize)[escolalms/headless-h5p

Headless H5P Laravel REST API

2732.6k8](/packages/escolalms-headless-h5p)

PHPackages © 2026

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