Git Product home page Git Product logo

coyote's Introduction

Coyote

StyleCI Build Status Scrutinizer Code Quality

Coyote to nazwa systemu obslugujacego serwis 4programmers.net. Obecnie w obludze jest wersja 1.x ktora mamy nadzieje zastapic wersja 2.0 ktora jest w trakcie pisania i bedzie dostepna na githubie jako open source.

Uwaga! To repozytorium zawiera wersje 2.0-beta ktora absolutnie nie jest wersja koncowa i stabilna.

Wymagania

  • PHP 7
    • php-gd
    • php-mongodb
    • php-mcrypt
    • php-curl
  • PostgreSQL >= 9.3
  • MongoDB >= 2.7
  • composer
  • node.js
  • npm
  • git

Zalecane

  • Redis
  • Elasticsearch 1.7
  • Supervisor

Instalacja

  1. sudo apt-get install php-gd
  2. sudo apt-get install php-pear
  3. sudo pecl install mongodb
  4. sudo apt-get install php-pgsql
  5. echo "extension=mongodb.so" >> \php --ini | grep "Loaded Configuration" | sed -e "s|.:\s||"``
  6. git clone https://github.com/adam-boduch/coyote.git .
  7. psql -c 'create database coyote;' -U postgres
  8. cp .env.default .env (plik .env zawiera konfiguracje bazy danych PostgreSQL oraz MongoDB)
  9. make install (na produkcji) lub make install-dev (bez minifikacji JS oraz CSS)
  10. 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 (zakładając, że używasz PHP5 a nie PHP7)

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

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 Elasticearch

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 mozesz pomoc?

Zachecamy do aktywnego udzialu w rozwoju projektu. Zajrzyj na zakladke Issues i zobacz jakie zadanie mozesz zrealizowac. Realizujemy tylko te zadanie ktore jest zaakceptowane i przypisane do wersji 2.0..

  1. Utworz fork repozytorium
  2. Wprowadz zmiany
  3. Dodaj pull request

coyote's People

Contributors

adam-boduch avatar degusto avatar furious-programming avatar scrutinizer-auto-fixer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.