Aisel is open source CMS for highload projects based on combination Symfony2(backend) and AngularJS(frontend)
Project website: http://aisel.co/
Demo frontend: http://demo.aisel.co/ [frontenduser/frontenduser]
Demo administration: http://demo.aisel.co/administration [backenduser/backenduser]
1.) cd to your website directory and download composer with:
curl -sS https://getcomposer.org/installer | php
2.) Create project, installer will ask you dbname, username, password, etc..
php composer.phar create-project -s dev aisel/aisel
then set aisel as current directory with cd aisel/ and finish installation with commands bellow:
3.) Create database with GUI tool like phpmyadmin or with command
php app/console doctrine:schema:create
3.) Load initial data in database with
php app/console doctrine:fixtures:load
5.) Clear Symfony cache directory
php app/console cache:clear --env=dev
6.) Install frontend dependencies with
bower install
7.) Important: webserver needs permissions to write cache in aisel/app/cache/
Mac users:
sudo chmod +a "_www allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
sudo chmod +a "whoami
allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
Linux users:
sudo chown -R www-data:www-data app/cache app/logs
8.) Add Links to CSS and JS files
php app/console assets:install web --symlink
Once this steps is done you will be able to access admin section from http://websitename.dev/administration/ and frontend at http://websitename.dev/
Behat tests
Run Behat using the following command to test backend:
$ bin/behat
Karma tests
Karma unit tests:
$ grunt karma:unit
Karma midway testing:
$ grunt karma:midway
Karma e2e testing:
$ grunt karma:e2e
Task: php app/console aisel:sitemap:generate
This command will generate sitemap.xml
Example: http://demo.aisel.co/sitemap.xml
http://www.responsinator.com/?url=http%3A%2F%2Fdemo.aisel.co%2F%23%21%2Fpage%2Fabout-aisel%2F
Check Google index status: https://www.google.com/search?q=site%3Ademo.aisel.co
To make JS website indexable by Google you need to generate page snapshots
Snapshots handled by https://github.com/localnerve/html-snapshots
To generate snapshots run in terminal: node snapshots.js
Task will create snapshots in directory web/snapshots. In the end you will need to test like this:
For page http://demo.aisel.co/#!/pages/ you need type in terminal:
curl http://demo.aisel.co/?_escaped_fragment_=/pages/
Full info how to make SEO for JS website read here: https://developers.google.com/webmasters/ajax-crawling/docs/specification
Project uses GitHub issues. If you have found bug, please create an issue.
License can be found here.
Aisel was originally created by Ivan Proskuryakov. See the list of contributors.
Clean Ubuntu with 512 RAM
Symfony2 in DEV environment
No server or MySQL tweaks
http://tools.pingdom.com/fpt/#!/dpgreK/http://demo.aisel.co/#!/ - 539ms
http://tools.pingdom.com/fpt/#!/OVkNs/http://demo.aisel.co/#!/pages/ - 1.05s
http://tools.pingdom.com/fpt/#!/c7MfRS/http://demo.aisel.co/#!/page/userpage-10/ - 501ms