The application that we are going to develop has a very simple architecture. We are going to use Ext JS on the frontend, which is going to communicate with a server-side module, which will then communicate with a database as shown in the following diagram:
The server-side module will be developed using PHP. Do not worry if you do not know PHP. We are going to use a very basic code and we are going to focus on the programming logic that needs to be implemented on the server side. This way you can apply the same logic using any other programming language such as Java, Asp .NET, Ruby, Python, or any other one that has support to exchange data in JSON or XML format as this is the communication format used by Ext JS.
And for the database we will use MySQL. We will also use the Sakila sample schema, which is perfect to demonstrate how to work with CRUD (Create, Read, Update, and Delete/Destroy) operations on a database table and also use more complex operations, such as views and stored procedures (we will learn how to handle all this information with Ext JS).
After we have finished implementing the application, we will customize the theme, and because of this we will need to install Ruby and the Sass and Compass gems. Also, we will need to install Sencha Command to customize the theme and also make the production build. To have Sencha Command working properly, we will also need to have the Java SDK installed and configured.
To deploy the application, we need a web server. If you do not have any web server installed on your computer yet, do not worry. In this book we will use Xampp as the default web server.
We will also need a browser to run our application in. The recommended ones are Firefox (with Firebug) or Google Chrome.
So to summarize all the tools and software we need to have installed prior starting the fun, here is a list with the links where you can download them and find installation instructions:
A browser with a debugger tool:
Firefox with Firebug: https://www.mozilla.org/firefox/ and http://getfirebug.com/
Google Chrome: www.google.com/chrome
A web server:
A database:
MySQL Workbench: http://dev.mysql.com/downloads/tools/workbench/
MySQL Sakila sample database: http://dev.mysql.com/doc/index-other.html and http://dev.mysql.com/doc/sakila/en/index.html
Sencha Command and required tools
Sencha Command: http://dev.mysql.com/doc/sakila/en/index.html
Sass: http://sass-lang.com/
Compass: http://compass-style.org/
Java JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html
Java environment variables: http://docs.oracle.com/javase/tutorial/essential/environment/paths.html
And of course Ext JS: http://www.sencha.com/products/extjs/; we will use Ext JS 4.2 in this book.