Casper is a simple app which allows users to create events and manage guests
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Requirements:
-
Backend:
- 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
-
Frontend
- Node JS >= 8
First install composer dependencies
composer install
Then NPM dependencies
npm install
or, if you prefer yarn
yarn
Then copy .env.example to .env, and provide your environment details. You can also create an additional .env.testing file which will cover environment for running tests
Start build-in PHP server:
php artisan serve
On other terminal tab, run assets build:
npm run watch
- Backend:
- prepare testing environment - create .env.testing file and provide details
- seed test database:
composer seed:test
- run the tests:
composer test
If you are familiar with Docker, you can use it as well. In _docker directory has been prepared images for local development. All data generated by containers is stored in .data directory in project root. Make sure that directories within .data directory has correct permissions.
To start local environment run:
docker-compose up -d
or use a shortcut from Makefile
make start
To stop local environment run:
docker-compose down
or use a shortcut from Makefile
make stop
To seed test data and run PhpUnit tests with test container run:
make seed
make phpunit
Deployments are handling by Deployer - which is simple and quite good solution for continuous delivery. All configuration stuff is available inside deploy.php file in project directory root. Please ensure that you have access to defined server in config file. If everything is properly prepared, then you can run it.
To deploy app into development server run:
composer deploy:dev
- Laravel (5.7) - The web framework used
- React - Frontend library for creating dynamic views
- Redux - Library for managing state of JS apps
- Redux Saga - Library for middleware layer (for async calls and effects)
- Bootstrap 4 - Css framework