LarAppOne is a Laravel/Elasticsearh demo site with a beatiful dashboard and many cool features. Please fell free to fork it. There many, many nice features to be added to it.
It is recommended some previous experience with Laravel and Elasticsearch. In other words, it should be important to use this app in a computer where Laravel and Elasticsearch are already configured.
You will need:
- PHP 7.x
- mySQL (tested with 5.7.17)
- Composer
- Laravel 5.5 -- not tested with other versions
- Elasticsearch 5.6 -- not tested with other versions
- Clone this repository:
git clone https://github.com/sergionader/larappone/
cd larappone
- Update config/scout.php to reflect your Elasticsearch installation (see the instructions in the next section)
- Rename .env.example to /.env, edit it to insert your mySQL credentials -- if you want to test the email features, put your mailtrap.io credentials as well.
- Run
php artisan key:generate
to generate a key (if you haven't done it yet) and add it to the APP_KEY variable in .env file. - From your project folder run
composer update
- Run the migration:
php artisan migrate
- Start the server
php artisan serve --port 8000
- Run the seeder that will create the user [email protected]:
php artisan db:seed --class=UsersTableSeeder
- Browser the app: http://localhost:8000
- Log in with user [email protected] and password test1234
- Go to the settings menu (gear icon at the upper right)
- Open the section Populate Aux Tables and then click on Populate -- proceed when the confirmation dialog appears.
- Open the section Add Random Records. Try adding 10 records and choose "Today" from the date list
- Goto to the left menu, App, List, Search, Edit, Delete & Add and see your records.
- Enjoy! - and make sure to read the LarAppOne Official Documentation
Larapone uses Elasticsearch's default port. Your /config/scout.php file should show:
'driver' => env('SCOUT_DRIVER', 'elasticsearch'),
'elasticsearch' => [
'index' => env('ELASTICSEARCH_INDEX', 'larappone'),
'hosts' => [
env('ELASTICSEARCH_HOST', 'http://localhost'),
],
],
The Elasticsearch driver used in the project does not create the index automacally, so we have to do so:
curl -XPUT 'localhost:9200/larappone?pretty' -H 'Content-Type: application/json' -d'
{
"settings" : {
"index" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}
}'
If you are using a Linux or a Mac computer, run the following:
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
Detailed instructions on how to change the time interval of the cronjob can be found at the Task Scheduling page from the official Laravel documentation.
If you ever put this app in a production server, please create a user to run it and update the .env file accordingly. You should never run any production application with the root user!
Please open an issue if you have any question.
- Move the remaining chart selects to eloquent
- Implement Roles & permissions
- Analyze where and implement wueues
- Make it multilanguage
- Revise ES implementation -- there is room from improvement
- Grid export (at least to CVS
- Implement reCaptcha
Just navigate to the LarAppOne Official Documentation
- Full Stack - All the packages used in the project
This project is licensed under the MIT License - see the LICENSE.md file for details