PHPackages                             zachleigh/larafolio - 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. zachleigh/larafolio

ArchivedProject

zachleigh/larafolio
===================

A portfolio management system for Laravel.

v0.9.11(9y ago)17365MITPHP

Since Nov 22Pushed 9y ago4 watchersCompare

[ Source](https://github.com/zachleigh/larafolio)[ Packagist](https://packagist.org/packages/zachleigh/larafolio)[ RSS](/packages/zachleigh-larafolio/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (13)Used By (0)

 [![](https://raw.githubusercontent.com/zachleigh/larafolio/dev/dist/images/brand.png)](https://raw.githubusercontent.com/zachleigh/larafolio/dev/dist/images/brand.png)
#### Turn a Laravel app into a portfolio site in minutes

[](#turn-a-laravel-app-into-a-portfolio-site-in-minutes)

 [ ![Latest Stable Version](https://camo.githubusercontent.com/56f2d6990e22323a1a90f189f20e955c390ba0eac60a3849c8e19a00dcc69e2f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7a6163686c656967682f6c617261666f6c696f2e737667) ](packagist.org/packages/zachleigh/larafolio) [ ![Licence](https://camo.githubusercontent.com/074b89bca64d3edc93a1db6c7e3b1636b874540ba91d66367c0e5e354c56d0ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667) ](packagist.org/packages/zachleigh/larafolio) [ ![Build Status](https://camo.githubusercontent.com/d8288466634916506ad022843ed4e6e28c3d6617e7ce558c9239d1ceccb5c9e9/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f7a6163686c656967682f6c617261666f6c696f2f6d61737465722e737667) ](https://travis-ci.org/zachleigh/larafolio) [ ![SensioLabsInsight](https://camo.githubusercontent.com/d1d8a703c64a36971bafe771fd5417466f3a2c6484a6687883d66a9331f445a7/68747470733a2f2f696d672e736869656c64732e696f2f73656e73696f6c6162732f692f37656132636135332d303664312d343137352d623737372d6638313839396366663730362e737667) ](https://insight.sensiolabs.com/projects/7ea2ca53-06d1-4175-b777-f81899cff706) [ ![Quality Score](https://camo.githubusercontent.com/4027a385966faa8a42329241007aeff0d153397205d6fd5e45cb8e8f62603846/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f7a6163686c656967682f6c617261666f6c696f2e737667) ](https://scrutinizer-ci.com/g/zachleigh/larafolio/) [ ![StyleCI](https://camo.githubusercontent.com/9179fee92cc5c1b57a007a1be2a7c2188846aa3971a2d670132fb5c590f70530/68747470733a2f2f7374796c6563692e696f2f7265706f732f37343432313932302f736869656c643f7374796c653d666c6174) ](https://styleci.io/repos/74421920)

This project is still under construction. Come back soon!
---------------------------------------------------------

[](#this-project-is-still-under-construction-come-back-soon)

Contents
--------

[](#contents)

- [API](#api)
- [Developing](#devolping)

API
---

[](#api)

#### Larafolio\\Models\\Project.php

[](#larafoliomodelsprojectphp)

###### static allVisible($group = true, $order = true)

[](#static-allvisiblegroup--true-order--true)

###### static allHidden($group = true, $order = true)

[](#static-allhiddengroup--true-order--true)

###### static allGrouped($order = true)

[](#static-allgroupedorder--true)

###### static allOrdered()

[](#static-allordered)

###### static hasBlockNamed($blockName)

[](#static-hasblocknamedblockname)

###### static hasImageNamed($imageName)

[](#static-hasimagenamedimagename)

###### static hasLinkNamed($linkName)

[](#static-haslinknamedlinkname)

###### blocks()

[](#blocks)

###### links()

[](#links)

###### images()

[](#images)

###### hasBlocks()

[](#hasblocks)

###### block($name)

[](#blockname)

###### blockText($name, $formatted = true)

[](#blocktextname-formatted--true)

###### getProjectBlock()

[](#getprojectblock)

###### getProjectBlockText($formatted = true)

[](#getprojectblocktextformatted--true)

###### hasImages()

[](#hasimages)

###### image($name)

[](#imagename)

###### imageUrl($name, $size = 'medium')

[](#imageurlname-size--medium)

###### imageCaption($name)

[](#imagecaptionname)

###### getProjectImage()

[](#getprojectimage)

###### getProjectImageUrl($size = 'small')

[](#getprojectimageurlsize--small)

###### hasLinks()

[](#haslinks)

###### link($name)

[](#linkname)

###### linkUrl($name)

[](#linkurlname)

#### Larafolio\\Models\\Image

[](#larafoliomodelsimage)

###### thumbnail()

[](#thumbnail)

###### small()

[](#small)

###### medium()

[](#medium)

###### full()

[](#full)

###### imageRoute($templateName)

[](#imageroutetemplatename)

###### fileName()

[](#filename)

Developing
----------

[](#developing)

#### Getting Started

[](#getting-started)

###### Clone this repo:

[](#clone-this-repo)

```
git clone https://github.com/zachleigh/larafolio.git

```

###### Install php dependencies:

[](#install-php-dependencies)

```
composer install

```

###### Install javascript dependencies:

[](#install-javascript-dependencies)

```
yarn

```

Or, if you like pain and suffering:

```
npm install

```

###### Set up database connections

[](#set-up-database-connections)

Currently, database credentials are in two places (yeah, this sucks...):

- /vendor/laravel/laravel/.env.testing
- codeception.yml

Before submitting a pull request, please change codeception.yml back to its original values:

```
dsn: 'mysql:host=127.0.0.1;dbname=larafolio'
user: 'root'
password: 'password'
```

###### Artisan

[](#artisan)

There is an artisan file in the Larafolio directory that points to the laravel instance in vendor. This gives you access to all of the artisan commands you would normally use.

###### Publish the resources from the service provider:

[](#publish-the-resources-from-the-service-provider)

```
php artisan vendor:publish --provider="Larafolio\LarafolioServiceProvider" --force

```

###### Run migrations

[](#run-migrations)

```
php artisan migrate

```

#### Workflow

[](#workflow)

###### Serve the project:

[](#serve-the-project)

```
php artisan serve

```

###### Login and access project

[](#login-and-access-project)

Login logic is contained in the /login route in the underlying Laravel instance. To login and access the project, simply hit the /login route. A user will be logged in and you will be redirected to /manager. Hitting the login route also reruns the migrations and seeds it.

###### Build resources:

[](#build-resources)

```
gulp

```

CSS and JS will be built and moved into the vendor laravel instance automatically.

###### Watch for changes and build automatically:

[](#watch-for-changes-and-build-automatically)

```
gulp watch
```

###### Create test data
```
php artisan migrate:refresh --seed
```
Or simply hit the /login route.

#### Testing
This project contains both phpunit tests and Codeception tests.

Run all tests:
```
composer test
```

Run phpunit tests:
```
phpunit
```

Run Codeception tests:
```
codecept run acceptance
```

```

###  Health Score

30

—

LowBetter than 65% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 99.4% 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 ~6 days

Total

11

Last Release

3386d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/00a76b63e84a85f8770b1b02b1190c03400c48528f0c33262f7789d35eca875d?d=identicon)[zachleigh](/maintainers/zachleigh)

---

Top Contributors

[![zachleigh](https://avatars.githubusercontent.com/u/5616626?v=4)](https://github.com/zachleigh "zachleigh (172 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (1 commits)")

---

Tags

codeceptionlaravelportfolioportfolio-siteportfolio-websitelaravelcmsportfolio

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/zachleigh-larafolio/health.svg)

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

###  Alternatives

[alexstack/laravel-cms

Simple Bootstrap Laravel CMS. Can integrate to any existing Laravel project. Only add few database tables with prefix, not effect your existing database tables. Support Laravel 8.x &amp; 7.x &amp; Laravel 6.x &amp; Laravel 5.x - Amila Laravel CMS

1084.3k3](/packages/alexstack-laravel-cms)[janvince/smallcontactform

Simple but flexible multi language contact form builder with custom fields, validation and passive antispam

307.4k](/packages/janvince-smallcontactform)

PHPackages © 2026

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