The Symfony Demo Application on Roids!
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.
Table of Contents
- Setting up & running the demo with Vagrant + Ansible
- RESTful API + HATEOAS
- Elasticsearch
- OAuth
- RabbitMQ
- Redis
Instructions
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: