Skip to content

cmsrs/cmsrs3

Repository files navigation


CMS, gallery, and shop based on Laravel and Vue.js




INSTALLATION (QUICK SETUP)

Run the following command to create the project:

composer create-project cmsrs/cmsrs3
cd cmsrs3 && php artisan serve

MANUAL INSTALLATION

  • Download the source code:
git clone https://github.com/cmsrs/cmsrs3.git && cd cmsrs3
  • Install dependencies:
composer install
  • Prepare .env file, and change db connection:
cp .env.example .env

change db connection in .env file, for example:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cmsrs
DB_USERNAME=rs
DB_PASSWORD="secret102*"

You can create a MySQL user and database using the script: ./rs/go/go_create_user_and_db.sh

  • Set up Laravel and JWT (generate the application key and JWT secrets):
php artisan key:generate && php artisan jwt:secret
  • Create database tables and seed initial data:

php artisan migrate && php artisan db:seed
  • (optionally) Set up permission:
./rs/go/go_privilege.sh
  • Start server
php artisan serve

RUN TESTS

  • Prepare .env.testing file, and change db connection:
cp  .env .env.testing 

Change db connection in .env.testing file, for example:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cmsrs_testing
DB_USERNAME=rs
DB_PASSWORD="secret102*"

Attention! DB_DATABASE should be different than the one in the .env file.

You can create a MySQL database using the script ./rs/go/go_create_test_db.sh

  • (optionally) set permission
./rs/go/go_privilege.sh
  • run tests:

It is recommended to run tests on a clean instance (without images)

./vendor/bin/phpunit

MANAGMENT

CONFIGURATION .env FILE

After each change to a configuration value, it is necessary to log in to the admin panel again.

  • Set up langs, the default is 'en,pl':
LANGS="en,pl"

The first one will be default language. If you don't set up this directive it will be 'en,pl'

  • Add api secret, the default is '':
API_SECRET=""

It must be the same like in the admin config file (see Vue.js). It can be empty string.

  • Set available page type that appear in the administration area:

The default page types are:

PAGE_TYPES="cms,gallery,shop,contact,main_page,privacy_policy,login,projects,clear,checkout,register,home,shoppingsuccess,search,forgot,inner"
- cms - appear Wyswig editor in administration area
- clear - without Wyswig editor, it require write pure html code
- inner - it is text box in existing page require hardcode in layout page, 
    where key is short_title, example using in code: 
    (new PageService)->getPageDataByShortTitleCache('main_page_box1', 'content');

    The following short_title values are predefined:
    - main_page_box1, main_page_box2, main_page_box3 – these represent three content boxes on the main page
    - company_data – displays company information on the contact page
    - main_page_slider – contains images displayed in the slider on the main page

- gallery - page with photos
- projects - the same content in each langs
  • Additionally sending an e-mail with information from the contact form. If the value is empty, the text of the message will appear only in the administration panel in the contact tab
CONTACT_EMAIL=""
  • For Google reCAPTCHA v3 in the contact form, set up the following parameters:
GOOGLE_RECAPTCHA_PRIV
GOOGLE_RECAPTCHA_PUBLIC
  • Enable database cache, the default is false:
CACHE_ENABLE=false
  • Set the currency, the default is USD:
CURRENCY=USD
  • Set is_shop, the default is true:
IS_SHOP=true
  • Set the allowed file extensions for uploads:

The default file extensions for uploads are:

PAGE_TYPES="jpg,jpeg,png,gif"
  • PayU integration:
#https://merch-prod.snd.payu.com - sandbox
PAYU_URL=https://merch-prod.snd.payu.com
PAYU_POS_ID=123
PAYU_MD5=xxx
PAYU_CLIENT_ID=123
PAYU_CLIENT_SECRET=zzz
NOTIFY_URL=http://domain/home/orders
CUSTOMER_IP="123.123.123.123"

SAMPLE .env CONFIGURATION FOR COMPANY PROFILE PAGE

If you want to create a company profile page, I suggest setting the following CMS parameters, for example:

IS_SHOP=false
LANGS="en"
API_SECRET="string123"
PAGE_TYPES="cms,gallery,contact,main_page,privacy_policy,inner,clear"

CLI COMMANDS

  • Load test (demo) data:

I highly recommend running this script to understand how my CMS works. (Remember to leave the default values in the .env file.)

./rs/go/go_clear_and_load_demo.sh
  • Create sitemap (it is recommended to put this command in the crontab file):
php artisan cmsrs:create-site-map
  • Create client user or edit password for user:
php artisan cmsrs:create-client {user} {password}
  • Change admin password:
php artisan cmsrs:change-admin-pass {new-password}

DEMO - Frontend

http://demo.cmsrs.pl

DEMO - Admin Panel

http://demo.cmsrs.pl/admin-demo

TUTORIALS

https://www.cmsrs.pl/en/cms/cmsrs/cmsrs-video-tutorial

MORE INFORMATION

https://www.cmsrs.pl/en/cms/cmsrs/about-cmsrs

VUE.JS SOURCE CODE

https://github.com/cmsrs/cmsrs3-vuejs

REPORTING ISSUES AND SUGGESTIONS

If you notice any problems or have ideas to improve the project, please use the Issues section to let me know. If you like it, give it a star! Your support motivates me to keep improving the project. Thank you! :)