PHP HTML JavaScript CSS Vue Ruby
Switch branches/tags
Nothing to show
Clone or download
Latest commit 2007580 Aug 1, 2018
Permalink
Failed to load latest commit information.
app usuniety zbedny kod Aug 1, 2018
bootstrap nowa linia na koncu tekstu Aug 23, 2016
config Konfiguracja dockera May 8, 2018
database zmiana na int (pierwotny typ dla kolumny bledny) Jul 17, 2018
docker Poprawki z Codacy May 29, 2018
public podmiana banera Jul 11, 2018
puppet/env/dev ostatnie poprawki Feb 13, 2017
resources css modified Jul 26, 2018
routes Revert "mikro refaktoryzacja" Jul 9, 2018
storage chcemy aby ten katalog znalazl sie w repo. w nim purifier zapisuje cache May 5, 2016
tests poprawa testu Jun 12, 2018
.editorconfig dodanie php cs fixer Sep 23, 2015
.env.default powiadomienie sms o wyslanej aplikacji Dec 9, 2017
.env.docker Dodano konfigurację smtp, usunięto logi May 23, 2018
.env.prod domyslny driver Dec 11, 2017
.env.testing dodanie testowych danych do API Oct 23, 2017
.gitattributes Kolejne zmiany w configu vagranta/puppeta Feb 8, 2017
.gitignore Dodano insrukcję uruchomienia May 23, 2018
.jshintrc clasa Dialog do pokazywania okien bootstrapowych - modal Jan 6, 2017
.styleci.yml cofniecie zmian (nie byly konieczne; byl ustawiony zly config w styleci) Mar 31, 2016
.travis.yml Merge pull request #420 from aurell/417_Konfiguracja_dockera Jun 9, 2018
CHANGELOG.md update Feb 4, 2018
LICENSE 2017 Feb 15, 2017
Makefile poprawne wywolanie parametrow gulpa Jul 11, 2017
README.md Poprawiona instrukcja May 24, 2018
Vagrantfile Poprawki z Codacy May 29, 2018
Vagrantfile.docker Poprawki z Codacy May 29, 2018
Vagrantfile.puppet Konfiguracja dockera May 8, 2018
artisan wersja 2.0-dev Feb 16, 2015
codeception.yml domyslny plik konfiguracji codeception Oct 20, 2015
composer.json aktualizacja bibliotek Jul 13, 2018
composer.lock aktualizacja bibliotek Jul 13, 2018
docker-compose.yml Zmiana folderu logów nginxa May 23, 2018
gulpfile.js uzycie font awesome Aug 1, 2017
package.json komponent do wyboru tel kierunkowego Dec 7, 2017
phpspec.yml nowa linia na koncu tekstu Aug 23, 2016
phpunit.xml nowa linia na koncu tekstu Aug 23, 2016
server.php nowa linia na koncu tekstu Aug 23, 2016
supervisor.conf.default migracja do laravel 5.3 Dec 31, 2016
webpack.config.js plugin inputmask Mar 15, 2017
yarn.lock komponent do wyboru tel kierunkowego Dec 7, 2017

README.md

Coyote

StyleCI Build Status Scrutinizer Code Quality

Coyote to nazwa systemu obsługującego serwis 4programmers.net.

Wymagania

  • PHP 7
    • php-gd
    • php-mongodb
    • php-mcrypt
    • php-curl
    • php-mbstring
    • php-pgsql
    • php-mongodb
    • php-xml
  • PostgreSQL >= 9.4
  • MongoDB >= 2.7
  • composer
  • node.js
  • npm
  • git
  • Redis
  • Elasticsearch 5.0

Zalecane

  • Supervisor

Instalacja

  1. sudo apt-get -y install php-gd php-mbstring php-mcrypt php-pear php-curl php-mongodb php-pgsql php-xml
  2. git clone https://github.com/adam-boduch/coyote.git .
  3. psql -c 'create database coyote;' -U postgres
  4. cp .env.default .env (plik .env zawiera konfiguracje bazy danych PostgreSQL oraz MongoDB)
  5. make install (na produkcji) lub make install-dev (bez minifikacji JS oraz CSS)
  6. php artisan key:generate (generowanie unikalnego klucza, który posłuży do szyfrowania danych)

Problemy podczas instalacji

Class 'MongoClient' not found

Czy biblioteka mongo jest zainstalowana? Jeżeli tak to service php7.0-fpm restart

Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128'

Czy biblioteka mcrypt jest zainstalowana? Jeżeli nie to apt-get install php-mcrypt. Jeżeli tak to service php7.0-fpm restart.

sh: 1: phpize: not found

sudo apt-get install php7.0-dev

php error: Cannot find OpenSSL's libraries

sudo apt-get install pkg-config libssl-dev

Uruchomienie

Działanie projektu wymaga zainstalowania serwera HTTP takiego jak Apache czy Nginx. PHP udostępnia jednak prosty serwer HTTP, który można wykorzystać, aby sprawdzić działanie aplikacji. Aby go uruchomić należy wykonać polecenie: php -S localhost:8000 -t public

Vagrant

Instalacja Docker

W folderze projektu wykonujemy następujące polecenia:

  1. cp .env.docker .env

  2. cp Vagrantfile.docker Vagrantfile

  3. vagrant up

  4. vagrant ssh

  5. cd /vagrant

  6. sudo docker-compose build

  7. sudo docker-compose up -d

  8. sudo docker-compose exec php make install-dev

  9. sudo docker-compose exec php php artisan key:generate

  10. sudo docker-compose exec php php artisan es:create

  11. sudo docker-compose exec php php artisan es:mapping

Strona jest dostępna w przeglądarce pod adresem: 175.0.0.10:8880

Instalacja Puppet

Aby nie instalować wszystkich pakietów lokalnie, można skorzystać z Vagranta. Obecna wersja nie umożliwia jeszcze całkowitej instalacji z wnętrza Vagranta (jeśli wiesz, jak sprawić, by npm install i gulp działało na Vagrancie pod systemem Windows, daj znać), więc wymagane są następujące narzędzia zainstalowane lokalnie:

  • Vagrant
  • npm
  • gulp (instalowane przez npm install -g gulp)
  1. vagrant up
  2. npm install
  3. gulp
  4. w etc/hosts dodajemy wpis 192.168.10.10 coyote.dev
  5. w przeglądarce pod adresem coyote.dev powinniśmy zobaczyć działającą wersję Coyote

Testowanie

W pisaniu testów, pomaga nam framework Codeception. Testy znajdują się w katalogu tests, który zawiera testy jednostkowe, funkcjonalne oraz akceptacyjne. Aby uruchomić testy trzeba wejść do katalogu z projektem i wykonać polecenia:

  1. vendor/bin/codecept build (tylko jednorazowo)
  2. vendor/bin/codecept run

Jeżeli chcesz uruchomić testy akceptacyjne, to będziesz potrzebował narzędzia takiego jak Selenium czy PhantomJS. W katalogu tests znajduje się plik acceptance.suite.yml.travis który zawiera konfigurację testów akceptacyjnych i jest wykorzystywany przez Travis CI. Należy zmienić nazwę tego pliku na acceptance.suite.yml i zmienić wartość url na prawidłowy adres pod którym uruchomiony jest Coyote (np. http://localhost/). Zakładamy, że PhantomJS jest uruchomiony (phantomjs --webdriver=4444).

Aktualizacja projektu

make update (na produkcji) lub make update-dev (na serwerze deweloperskim)

Konfiguracja

Konfiguracja projektu znajduje się w pliku .env. Szczególnie zaleca się zmianę sterownika cache na redis:

CACHE_DRIVER=redis

Konfiguracja supervisor

Supervisor jest narzędziem monitorującym procesy, działającym w środowisku Linux. W Laravel dostępny jest mechanizm kolejkowania zadań (np. indeksowanie treści w Elasticsearch), który można uruchomić przy pomocy

php artisan queue:listen --sleep=10

Supervisor ma na celu automatyczne uruchamianie tego procesu po starcie systemu i pilnownie, aby zawsze był uruchomiony. Konfigurację supervisor możesz znaleźć w pliku supervisor.conf. Więcej informacji: https://laravel.com/docs/5.2/queues

Ustawienia crona

W przypadku ustawienia środowiska na production w pliku .env, konieczne będzie ustawienie crona aby wykonywać pewne czynności cykliczne.

  1. W konsoli wpisz crontab -e
  2. Dodaj linię: * * * * * php /var/www/path-to-app/artisan schedule:run >> /dev/null 2>&1

Konfiguracja Elasticsearch

Po instalacji Elasticsearch, konieczne jest utworzenie indeksu oraz typów. Wykonaj poniższe polecenia:

  1. php artisan es:create
  2. php artisan es:mapping

Jak możesz pomóc?

Zachęcamy do aktywnego udziału w rozwoju projektu. Zajrzyj na zakładkę Issues i zobacz jakie zadanie możesz zrealizować. Realizujemy tylko te zadania, które są zaakceptowane i przypisane do wersji 2.0.

  1. Utwórz fork repozytorium
  2. Wprowadź zmiany
  3. Dodaj pull request