The "Symfony Demo Application on Roids" is an application based on the original Symfony Demo Application that includes extra features using technologies like Elasticsearch, OAuth, RabbitMQ, Redis and a RESTful API + HATEOAS.
- Setting up & running the demo with Vagrant + Ansible
- RESTful API + HATEOAS
- Elasticsearch
- OAuth
- RabbitMQ
- Redis
git clone https://github.com/alfonsomga/symfony.demo.on.roids.git
cd symfony.demo.on.roids/vagrant/
vagrant up
- Wait until Ansible installs and configure everything
- Finally navigate to http://192.168.50.88 to browse the app
Congratulations! You're now ready to use The Symfony Demo On Roids.
## RESTful API + HATEOASA RESTful API + HATEOAS has been implemented for expose the resources. Different formats are available for manage the data: HTML, JSON and XML.
Related urls:
Bundles used:
- FOSRestBundle
- JMSSerializerBundle
- NelmioApiDocBundle
- FOSHttpCacheBundle
- BazingaHateoasBundle
- BazingaRestExtraBundle
Elasticsearch has been used for add a simple search form and show relevant results based on the user search query.
Related urls:
Bundles used:
## OAuthOAuth has been used for link/unlink an account from an OAuth provider (GitHub in this case) to an existent backend account and allows to log in directly to the backend from a GitHub account.
To use this feature you must register a new OAuth Application and edit the parameters.yml.dist file with your app client id
and client secret
token.
Related urls:
Bundles used:
## RabbitMQRabbitMQ has been used for generate a PDF file based on the article content from a consumer in a scalable way.
Related urls:
- RabbitMQ Admin panel (User:
admin
password:symfony.demo.on.roids
) - Post page (click on
Download post as PDF
)
Bundles used:
## RedisRedis has been used for show the top 5 popular posts and set a cache lifetime of 3600 seconds.
Related urls:
Bundles used: