# Requirements

## Server Requirements

All of the following requirements can be met for development by installing [Laravel Valet](https://laravel.com/docs/5.8/valet) or [Laravel Homestead](https://laravel.com/docs/5.8/homestead)

* PHP >= 7.1.3
* OpenSSL PHP Extension
* PDO PHP Extension
* Mbstring PHP Extension
* Tokenizer PHP Extension
* XML PHP Extension
* Ctype PHP Extension
* JSON PHP Extension
* One of the Laravel supported databases
  * MySQL
  * PostgreSQL
  * SQLite
  * SQL Server

### Optional Server Requirements

* Image optimization libraries:&#x20;
  * JpegOptim
  * Optipng
  * PNGQuant
  * SVGO
  * gifsicle

Ubuntu Installation

```
sudo apt-get install jpegoptim
sudo apt-get install optipng
sudo apt-get install pngquant
sudo npm install -g svgo
sudo apt-get install gifsicle
```

And here's how to install the binaries on MacOS (using [Homebrew](https://brew.sh/)):

```
brew install jpegoptim
brew install optipng
brew install pngquant
brew install svgo
brew install gifsicle
```

## Software Requirements

* Composer:[ Installation Documentation](https://getcomposer.org/doc/00-intro.md#locally)
* VueCLI: [Installation Documentation](https://cli.vuejs.org/)
  * Only needed for advanced installation to customize Devise

## Programming Requirements

### Just what you need for an amazing site

To get started you really only need to have some basic web development skills. You can get knee-deep in PHP and Laravel with Devise but you don't have to. With some basic knowhow you can get a pretty complex site up in no time.

* Ability to setup a Laravel project in a development environment
* HTML
* CSS (or other preproccessor)
* _Some_ Javascript

### More advanced applications may require

* PHP
* JavaScript
* Understanding of Laravel
* Understanding of Vue JS
