#Curso Exato ERP
Esse projeto visa a construção de um sistema personalizado para gerenciar o Curso Exato. Para iniciar um ambiente de desenvolvimento, são necessários:
- GIT e PHP - dispensam apresentações
- Composer - gerenciador de dependências php
- Npm - gerenciador de dependências javascript (e outras funcionalidades)
Tenha todos instalados e, de preferência, disponíveis no path do seu usuário. É recomendado dar um update nessas ferramentas, principalmente se instalou usando apt-get ou similares (eles costumam estar com versão atrasada).
$ sudo -H composer self-update
$ sudo npm install -g npm
Depois, comece clonando o repositório.
$ git clone ssh://[email protected]:tom-rb/exatorp.git
$ cd exato-erp
###Configurando .env
Antes de instalar as dependências, configure um arquivo .env para sua máquina copiando o .env.example existente. A principal mudança necessária é a configuração do banco de dados. Se tiver um MySQL instalado na máquina, apenas insira as credenciais corretas. É possível também usar o SQLite com:
-- No seu .env
DB_CONNECTION=sqlite
-- Crie um arquivo vazio para iniciar o DB local
$ mkdir exato-rp/storage/database
$ touch exato-rp/storage/database/local.sqlite
-- Crie também o banco usado para testes
$ touch exato-rp/storage/database/testing.sqlite
É necessário ativar a extensão de sqlite no seu php editando o php.ini, mesmo que use MySQL, pois os testes estão configurados para rodar no sqlite mesmo.
###Instalando dependências
Use o composer e o npm para baixar e instalar as dependências:
$ composer install
$ npm install --no-bin-links
A última opção --no-bin-links
é útil apenas se estiver numa máquina Windows, para Unix pode não incluir essa opção.
###Hora do play
Antes de começar a interagir com a aplicação, é necessário criar no banco de dados as tabelas que o sistema utiliza. Para isso, há um comando da ferramenta Artisan do Laravel (ver Frameworks abaixo):
$ php artisan migrate --seed
Migrating: 2014_10_12_000000_create_members_table
Migrated: 2014_10_12_000000_create_members_table
...
Esse comando irá migrar o banco de dados, ou seja, aplicar a construção de tabelas já definidas, e ainda irá popular (--seed
) a mesma com dados fantasia.
Por fim, um servidor web precisa ser lançado. Um jeito simples é usar o próprio servidor embutido do php configurado pelo artisan:
$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>
...
Acesse o endereço retornado pelo comando e o sistema deverá estar rodando.
##Frameworks
O desenvolvimento é feito sobre o Laravel versão 5.4. A próxima versão (5.5) vai exigir o PHP7 e o servidor que o Exato dispõe ainda não dá suporte a isso, logo devemos ficar no 5.4 mesmo.
O CSS está utilizando o Bulma como base, um framework mais simples que o Bootstrap. Para javascript, a base escolhida é o Vue.js.
Os testes seguem a estrutura proposta pelo Laravel, mais detalhes na documentação deles.
##Aprendizado
Grande parte do workflow e filosofia de desenvolvimento foi inspirada no trabalho de Jeffrey Way no site de video-aulas laracasts.com. Sugiro fortemente assistir algumas séries para ir captando a ideia. Para começar, veja Laravel 5.4 from scratch.