Software EnvironmentApplications that Support Website |
Summary
An overview of the applications and tools used to create the development and production environments of the website.
Description
Many applications and libraries have been installed in order to accomplish project goals. The goal here is to show how these tools relate to each other and the role they play in the overall application environment.
-
JavaScriptA language that can run in the browser to make websites interactive. Development
There are a number of tools used to generate the custom JavaScriptA language that can run in the browser to make websites interactive. files included in the website. These tools are only installed in my development environments (i.e. my Macbook and PC). They do not exist in the production environment on the AWS EC2Amazon service that allows you to provision and configure your own servers. Linux instance, only the vendor.js and budle.js files produced by these applications are available on the production box.
- HomebrewApplication used to install XDebug and NodeJS on Macbook. - a free and open-source software package management system that simplifies the installation of software on Apple's macOS operating system. It was used to install NodeJSA non-browser based environment in which JavaScript can be run. and XDebugA PHP extension which provides debugging and profiling capabilities..
- NodeJSA non-browser based environment in which JavaScript can be run. - a non-browser JavaScriptA language that can run in the browser to make websites interactive. runtime environment.
- NPMThe default package manager for the JavaScript runtime environment NodeJS. - JavaScriptA language that can run in the browser to make websites interactive. package manager that comes with NodeJSA non-browser based environment in which JavaScript can be run..
- BabelA library that converts modern JavaScript syntax into a backward compatible version for use in older browsers. - JavaScriptA language that can run in the browser to make websites interactive. "compiler".
- ReactJavaScript library for building interactive applications from reusable components. - JavaScriptA language that can run in the browser to make websites interactive. library for building reusable interface components.
- ReduxA predictable application state container for JavaScript applications. - JavaScriptA language that can run in the browser to make websites interactive. library to manage application state.
- WebpackWebpack transforms and bundles JavaScript classes into modules for use in a browser. - JavaScriptA language that can run in the browser to make websites interactive. module bundler.
-
Web server
There are a handful of differences between the development and production web server. On my MacBook, the MAMPPersonal webserver stack to allow PHP and MySQL development on MacOS. application was installed to create the Apache, MySQLRelational database used to hold website content and search data., PHPServer-side scripting language for web development. stack. In production, the EC2Amazon service that allows you to provision and configure your own servers. Linux web server has the LAMP stack installed.
- MacOS / Linux - Development is currently being done on a MacOS, in production the operating system is Linux.
- MAMPPersonal webserver stack to allow PHP and MySQL development on MacOS. - In order to get a web server on MacOS, MAMPPersonal webserver stack to allow PHP and MySQL development on MacOS. was installed which gets you an *AMP stack in a single application. (In production the *AMP stack components are just installed directly on Linux server without the use of an intermediate application.)
- Apache - The HTTP (i.e web) server
- MySQLRelational database used to hold website content and search data. - A relational database.
- PHPServer-side scripting language for web development. - Server-side scripting language that is especially suited to web development.
- DevOps
- ComposerUsed to manage the installation of third-party PHP libraries. - PHPServer-side scripting language for web development. package manager used to install and manage the dependencies of all the PHPServer-side scripting language for web development. libraries used by this project.
- PhinxA PHP library to automate the implementation of database changes. - PHPServer-side scripting language for web development. library used to automate changes to the database.
- PHPUnitA PHP Library for Code Test Automation -PHPServer-side scripting language for web development. library to automate unit testing.
- Production
- Auryn InjectorA PHP Dependency Injector library to support Inversion of Control design pattern. - PHPServer-side scripting language for web development. library for dependency injection.
- TwigPHP template engine that simplifies the generation of HTML pages. - PHPServer-side scripting language for web development. library for creating templates to simplify HTML generation.
- PHPMailerA full-featured PHP library for creating and sending emails. - PHPServer-side scripting language for web development. library for sending emails.
- Google SignInJavaScript and PHP libraries to integrate Google sign-in into the website. - PHPServer-side scripting language for web development. library that supports the Google login API.
-
Browser
Beyond the HTML, CSS and custom JavaScriptA language that can run in the browser to make websites interactive. delivered to the browser from the web server, there are a number of third-party Javascript and CSS files referenced.
- JQueryA Javascript library to make working with the DOM, event handling and AJAX easier. - a very popular JavaScriptA language that can run in the browser to make websites interactive. library that simplifies a wide range of coding tasks.
- BootstrapA framework that allows dynamic page layout that responses to the size of the screen. - a combination of CSS and JavaScriptA language that can run in the browser to make websites interactive. that creates page layouts that are customized dynamically to fit the screen size.
- FontAwesome - a collection of vector icons.
- Ace - JavaScriptA language that can run in the browser to make websites interactive. code editor embedded in a web page to edit content as HTML markup.
- TinyMCEA JavaScript WYSIWYG editor that can be embedded in a web page. -JavaScriptA language that can run in the browser to make websites interactive. WYSIWYG editor embedded in a web page to edit content as formatted text.
- BeautifyA Javascript library that format and indent code to make it more readable. - JavaScriptA language that can run in the browser to make websites interactive. library used to format HTML to make it more readable.
- Google SignInJavaScript and PHP libraries to integrate Google sign-in into the website. - JavaScriptA language that can run in the browser to make websites interactive. library that supports the Google login API.