Project Unfinished is a PHP open source project | Behind http://phpsrbija.rs website
PHP CSS HTML JavaScript Shell

README.md

Project Unfinished

Build Status Coverage Status Scrutinizer Quality Score

Installation

Vagrant

git clone https://github.com/phpsrbija/unfinished.git
cd unfinished
vagrant up

open file /etc/hosts and at the end add one line: 
192.168.33.3 unfinished.test

Open in your browser http://unfinished.test and voila!

Admin is at http://unfinished.test/admin
user: admin@unfinished.com
pass: testtest

Docker

git clone https://github.com/phpsrbija/unfinished.git
cd unfinished
docker-compose up
docker-compose run php composer install
docker-compose run php bin/setup-db.sh docker

Open in your browser http://localhost and voila!

Admin is at http://localhost/admin
user: admin@unfinished.com
pass: testtest

Our main philosophy of software architecture

Packages, packages and packages...

Main goal is to break all code to fully separated packages with no dependencies. If some package have dependence with other that should relay in composer.json For eg. article can have dependence from category package.

Such a way will lead us to easier:

  • Adding new features as separated package (scale by team)
  • Replace or refactor some functionality or whole package - not whole app
  • Software versioning - Versioning of functionality through package versioning

Road Map

New packages

  • News Letter
  • Contact Us
  • Settings (for global web site configuration like SEO tags)
  • Media (for images, admin)
  • User (for web users)

Reafctoring

  • Refactor and extend Admin packages. Wee need to have:

    • Admin package (very tiny, hold only layout.phtm with navigation config)
    • AdminUser package
    • AdminPermissions package
  • Pull apart current Article package into separated packages per article type, allowing easy to add/remove type

    • PostArticle,
    • VideoArticle,
    • EventArticle,
    • DiscussionArticle
  • Introduce Entities and Hydration (as in Page package)

Wish list

  • Switch current Zend-Router router with FastRoute
  • Move all packages in separate repository (main repo need to have install process)
  • Scale images during upload process; change upload lib.
  • Better naming of variables/functions & write the documentation
  • DevOps things as well as rise up code coverage with Unit testing
  • Better handling exceptions per package

Database info

You have a mysql database setup, the db name is unfinished, the user is root the password is 12345.