Skip to content

christiancable/nexus5ive

Repository files navigation

Nexus 5ive

                   ÛÛ
ÛÛÛ   ÛÛ   ÛÛÛÛÛÛÛ   ÛÛ   ÛÛ   ÛÛ   ÛÛ   ÛÛÛÛÛÛÛ
ÛÛÛÛ  ÛÛ°  ÛÛ°°°°°°   ÛÛ ÛÛ°°  ÛÛ°  ÛÛ°  ÛÛ°°°°°°
ÛÛ°ÛÛ ÛÛ°  ÛÛÛÛ        ÛÛÛ°°   ÛÛ°  ÛÛ°  ÛÛÛÛÛÛÛ   5
ÛÛ° ÛÛÛÛ°  ÛÛ°°°      ÛÛ°ÛÛ    ÛÛ°  ÛÛ°   °°°°ÛÛ°
ÛÛ°  ÛÛÛ°  ÛÛÛÛÛÛÛ   ÛÛ°° ÛÛ    ÛÛÛÛÛ°°  ÛÛÛÛÛÛÛ°
 °°   °°°   °°°°°°°   °°   ÛÛ    °°°°°    °°°°°°°
                            °°

Written by Christian Cable.

This is the code that powers the old-school style injoke of a BBS at https://nexus5.org.uk.

The web version of Nexus has run in one form or another since the ultra-futuristic year of 2001. It was inspired by the UCLAN CompSoc BBS of the mid-90s where I happily misspent much of my university days.

This current version is built using the Laravel framework by Taylor Otwell

Build Status

Build Status

Install Steps

  • composer install
  • cp .evn.example .env
  • Edit .env; add your datbase info and sensible values for the NEXUS_*
  • php artisan migrate
  • yarn
  • yarn run production
  • php artisan nexus:install

View the Roadmap

Themes

Nexus supports bootstrap themes. These can be externally hosted css files (such as the excellent ones at Bootswatch) or built within nexus. Nexus ships with a Default theme and an example 'Excelsior' theme.

To enable the Excelsior theme php artisan nexus:theme add --name=Excelsior --path='/css/excelsior.css'

To add external themes from Bootswatch...

php artisan nexus:theme add --name=darkly  --path='https://bootswatch.com/4/darkly/bootstrap.min.css'
php artisan nexus:theme add --name=slate   --path='https://bootswatch.com/4/slate/bootstrap.min.css'
php artisan nexus:theme add --name=united  --path='https://bootswatch.com/4/united/bootstrap.min.css'
php artisan nexus:theme add --name=solar   --path='https://bootswatch.com/4/solar/bootstrap.min.css'
php artisan nexus:theme add --name=sketchy --path='https://bootswatch.com/4/sketchy/bootstrap.min.css'
php artisan nexus:theme add --name=materia --path='https://bootswatch.com/4/materia/bootstrap.min.css'
php artisan nexus:theme add --name=minty   --path='https://bootswatch.com/4/minty/bootstrap.min.css'

Themes can be removed by

php artisan nexus:theme remove --name=minty

Users who use a removed theme have their theme set to the default.

Development

A number of useful tasks are included to aid in development.

Tests

PHP and javascript tests are provided. Coverage is nowhere near complete. Pull requests here are extremely welcome.

PHP

PHP testing for unit and features are written using phpunit

yarn phpunit or with coverage map yarn coverage

The tests are found in /tests

Javascript

JS tests are written using mocha.

The tests are found in /test/js/

Static Analysis

Static analysis is provided using the larastan package. To run an analysis of the code run:

yarn larastan

Coding Standards

PHP is written to confirm to PSR2. To check the status of all the files within app run:

yarn phpcs