A portfolio management system for Laravel.

Overview

Turn a Laravel app into a portfolio site in minutes


Latest Stable Version Licence Build Status SensioLabsInsight Quality Score StyleCI

This project is still under construction. Come back soon!

Contents

API

Larafolio\Models\Project.php

static allVisible($group = true, $order = true)
static allHidden($group = true, $order = true)
static allGrouped($order = true)
static allOrdered()
static hasBlockNamed($blockName)
static hasImageNamed($imageName)
static hasLinkNamed($linkName)
blocks()
links()
images()
hasBlocks()
block($name)
blockText($name, $formatted = true)
getProjectBlock()
getProjectBlockText($formatted = true)
hasImages()
image($name)
imageUrl($name, $size = 'medium')
imageCaption($name)
getProjectImage()
getProjectImageUrl($size = 'small')
hasLinks()
link($name)
linkUrl($name)

Larafolio\Models\Image

thumbnail()
small()
medium()
full()
imageRoute($templateName)
fileName()

Developing

Getting Started

Clone this repo:
git clone https://github.com/zachleigh/larafolio.git
Install php dependencies:
composer install
Install javascript dependencies:
yarn

Or, if you like pain and suffering:

npm install
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

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:
php artisan vendor:publish --provider="Larafolio\LarafolioServiceProvider" --force
Run migrations
php artisan migrate

Workflow

Serve the project:
php artisan serve
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:
gulp

CSS and JS will be built and moved into the vendor laravel instance 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
```
Comments
  • Add support for pages

    Add support for pages

    Pages like About should be able to be kept in database as well. Could essentially be the same as project, just with no links and separate menu dropdown.

    enhancement 
    opened by zachleigh 5
  • Should be able to update image image

    Should be able to update image image

    When updating an image, you can update the name, alt text etc. but there is currently no way to update the image itself. You have to create a new image if you want to do this. Kind of annoying.

    enhancement 
    opened by zachleigh 3
  • Make command to seed database in portfolio with Larafolio data/images

    Make command to seed database in portfolio with Larafolio data/images

    Maybe just a command to move the Larafolio database seeders and factories to the local app?

    Issues:

    • Need to get rid of namespaces when moving seeders over
    • Eliminate use statements for DB and Storage
    • Change image paths. Should be __DIR__.'/../../vendor/zachleigh/larafolio/tests/_data/images'
    enhancement 
    opened by zachleigh 3
  • Move site-wide section style to .section namespace

    Move site-wide section style to .section namespace

    Will lead to more consistent styling and easier maintenance.

    Do the same for general layout items. Currently, a lot of it is in .project, but that stops making sense if the page is not a project page. Create a .page namespace.

    task 
    opened by zachleigh 2
  • Soft deleting project makes project name unusable in future

    Soft deleting project makes project name unusable in future

    Since the name needs to be unique, soft deleted project names can not be re-used. Possible solutions;:

    • Don't make project names unique (don't like this...)
    • Hard delete projects (scary..)
    • Have page where soft deleted projects can be managed
    • Have commands to deal with soft deleted projects

    The page seems like the best option to me, and really shouldn't be too much work. Maybe in a Settings page or series of pages. You could also make soft deleting an option.

    enhancement 
    opened by zachleigh 2
  • getProjectImage and getProjectBlock should return models

    getProjectImage and getProjectBlock should return models

    In Project.php. Have separate methods to return the image url and block text.

    getProjectImage found in Project.php and ProjectController.php.

    getProjectBlock found in Project.php and ProjectController.php.

    enhancement 
    opened by zachleigh 2
  • Check status of links

    Check status of links

    Use https://github.com/spatie/http-status-check to check status of links. Have a status indicator on the project manager page with colored dots: green for 200, orange for 300, red for 400/500. Output error message for all but 200 range. Run in background and update via ajax. Have either grey indicator or spinner in place of status indicator if process hasn't completed yet.

    enhancement 
    opened by zachleigh 2
  • Duplicate names for projects/pages are not caught when updating

    Duplicate names for projects/pages are not caught when updating

    When adding a project/page, duplicate names are caught and an error message is shown. When updating and changing the name to one that already exists, I get a 500 response caused by a sql error:

    SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Project1' for key 'projects_name_unique' (SQL: update `projects` set `name` = Project1, `slug` = project1, `updated_at` = 2017-02-06 22:11:40 where `id` = 6)
    
    bug 
    opened by zachleigh 1
  • Reload nav projects after restoring deleted project

    Reload nav projects after restoring deleted project

    Let vue manage the project list in the drop down.

    TODO:

    • Pull out project list component
    • Have a refresh method that hits the server to get the current project list and repopulates
    opened by zachleigh 1
  • Flash messages all same instance

    Flash messages all same instance

    If two flash messages hit the system at the same time, they are the same instance. The timer to hide the flash message is set with the first message so the second message is shown for a shorter amount of time. Should either:

    • Make it so each flash message is a separate instance (ideal)
    • Reset the timer when a new flash message is created
    bug 
    opened by zachleigh 1
  • Add config item for preview class

    Add config item for preview class

    The preview section of the edit form would be much more useful if it was wrapped in the same class as it is in the live app. Allow for this via a config item.

    enhancement 
    opened by zachleigh 1
  • Fix nav centering

    Fix nav centering

    When screen size get smaller, the logo in the navigation bar becomes uncentered. Move some items to right, maybe Home and Settings. When mobile, add a divider between the two sections.

    enhancement 
    opened by zachleigh 0
  • Ocassionally, deleting text blocks causes them to fall out of sync.

    Ocassionally, deleting text blocks causes them to fall out of sync.

    To reproduce:

    • Go to project1 edit page
    • Add one new text block
    • Start deleting other blocks from bottom up

    Often, this causes deleted block text to "stick" in the edit form. Text in preview is ok.

    bug 
    opened by zachleigh 0
  • Dont save empty resources

    Dont save empty resources

    Currently, you are saving empty text blocks, links etc. and displaying them on the project/page page. Shouldn't save them and should have a default message on the resource if none exist.

    bug 
    opened by zachleigh 0
Releases(v0.9.11)
  • v0.9.11(Jan 30, 2017)

  • v0.9.10(Jan 28, 2017)

  • v0.9.9(Jan 24, 2017)

    • Can now restore/permanently delete soft-deleted projects through Settings->Project Settings.
    • getProjectBlock now returns the TextBlock object, not just the text. Use getProjectBlockText to get text.
    • getProjectBlock now uses project name as identifier instead of 'description'.
    • getProjectImage now returns the Image object, not just image url. Use getProjectImageUrl to get url.
    • Bug fixes.
    Source code(tar.gz)
    Source code(zip)
  • v0.9.08(Jan 4, 2017)

  • v0.9.07(Dec 27, 2016)

    • Bug fixes.
    • Add ability to toggle project visibility from the dashboard.
    • Improve usability and accessibility.
    • Made design responsive for better device support.'
    Source code(tar.gz)
    Source code(zip)
  • v0.9.06(Dec 21, 2016)

  • v0.9.05(Dec 9, 2016)

    Changes

    • Added an index property on each project object before grouping so the original order can be accessed even when grouped.
    • Added static methods on Project to get project elements (images et.c) by name.
    • Added Link text field.
    • Added Image alt field.
    • Link order can now be changed.
    • Added a command to publish seeds from Larafolio into your local app.
    • Bug fixes.
    Source code(tar.gz)
    Source code(zip)
  • v0.9.04(Dec 4, 2016)

  • v0.9.03(Nov 29, 2016)

  • v0.9.02(Nov 24, 2016)

    • Improved dashboard functionality and style.
    • You can now change the order of projects in your portfolio.
    • Development workflow improvements
    Source code(tar.gz)
    Source code(zip)
  • v0.9.01(Nov 22, 2016)

Owner
Zach Leigh
Zach Leigh
Create Portfolio websites

Porfolio This repo contains a portfolio that showcases examples of your work along with the usual resume information about your work experience. To vi

Manasi Patil 2 Mar 6, 2022
This repository contains collection of portfolio's .

Welcome to the repository ?? This repository contains collection of portfolio's . You can add your own repository. How to contribute to this repositor

Avinash Singh 86 Dec 22, 2022
HiDomainer One-File Domain Portfolio Script, is a PHP script of only 8kb.

HiDomainer One-File Domain Portfolio Script, is a PHP script of only 8kb. Download Feature 1. PC and Mobile Friendly 2. Data management without page r

HiDomainer.com 1 Mar 2, 2022
This repository contains source code of my personal portfolio at naurislinde.com

The source code of naurislinde.com This repository contains source code of my personal portfolio at naurislinde.com Getting Started These instructions

Nauris Linde 7 Sep 12, 2022
Laravel-Library-Management-system is nice to management library system...

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Eng Hasan Hajjar 2 Sep 30, 2022
mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system

mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system. Dashboard features such as: Complete Dashboard, Custom Authentication, Email Verification, custom-login-register-forgot password (without jetstream).

Hasmukh Dharajiya 2 Sep 20, 2022
DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

kuaifan 3k Jan 5, 2023
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.

Voucher Management System is a web application for manage voucher. You can create and manage your voucher. Voucher Management System is used PHP with Laravel Framework and use MySQL for Database.

Artha Nugraha Jonar 34 Sep 17, 2022
This is a visitor management system, developed by the use of Laravel 8 combined with Jetstream, Livewire and Tailwind CSS.

This is a visitor management system, developed by the use of Laravel 8 combined with Jetstream, Livewire and Tailwind CSS.

Marios Tsouras 0 Apr 23, 2022
Rinvex Subscriptions is a flexible plans and subscription management system for Laravel

Rinvex Subscriptions is a flexible plans and subscription management system for Laravel, with the required tools to run your SAAS like services efficiently. It's simple architecture, accompanied by powerful underlying to afford solid platform for your business.

Rinvex 703 Dec 18, 2022
An automated library management system developed in Laravel 4.2 PHP MVC Framework

An automated system to manage a public library. Admin panel for librarians to control and manage the system easily through an interactive interface.

Prabhakar Gupta 244 Dec 27, 2022
Library management system with Laravel.

Laravel Library Management System Quick Start clone the repo cd Laravel-libraray-management-system composer install cp or copy .env.example .env php a

Tauseed 16 Dec 28, 2022
Faculty Management System (FMS) Built with Laravel 9 in Back-end and React , Redux in Front-end API's

Final Project Faculty Management System (FMS) as final project for faculty of Copmuter Science, Kandahar University, 2021 Faculty Management System (F

Shahghasi Adil 7 Jun 21, 2022
A complete open source hotel management system built with Laravel Framework.

Hotelio : Hotel Management System Hotelio is a open source hotel management system that manages your hotel operations, smoothly, effortless. Hotelio i

Mehedi Jaman 10 Dec 6, 2022
A simple helpdesk tickets system for Laravel 5.1+ which integrates smoothly with Laravel default users and auth system

A simple helpdesk tickets system for Laravel 5.1+ which integrates smoothly with Laravel default users and auth system, demo is available at: http://ticketit.kordy.info/tickets

Ahmed Kordy 857 Dec 30, 2022
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

Lychee A great looking and easy-to-use photo-management-system. Since the 1st of April 2018 this project has moved to it's own Organisation (https://g

Tobias Reich 6.2k Jan 5, 2023
A high performance full-featured project management system

Interested in managed hosting? Take a brief survey to help us know what to build! Phproject A high-performance project management system in PHP Instal

Alan Hardman 357 Dec 27, 2022
Library management system

Scriptorium management system Amicus Plato, sed magis amica veritas In the copying process, there was typically a division of labor among the monks wh

Roman Movchan 4 Jan 9, 2022
Admidio is a free open source user management system for websites of organizations and groups

Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it’s possible to reflect the structure and permissions of your organization.

Admidio 214 Jan 1, 2023