Test Outcomes
1. Details of applications, frameworks etc. required to run your solution
- PHP, NPM, Gulp
- JQuery, ES6
- Sass
- icomoon
2. Detailed instructions on how to install, configure and execute your solution
Install global packages
- Apache
sudo apt-get install php-cgi libapache2-mod-php nodejs sudo apt-get install build-essential sudo apt-get install npm gulp- NPM
#Install PM2 - A process manager for Node.js applications npm install -g pm2
Local setup
- Clone the repository
git clone https://github.com/kareemhb/cheque-writing-demo.git
- The repository was built on node v12.20.1. To avoid package version compatibility issues, change your nodeJS version to v12 if you are using a different version. You can do so by installing n https://github.com/tj/n
npm install -g n n 12.20.1
- Install packages
npm install
- Build, run and watch
#start and the express seerver pm2 start server.js #build the code gulp build #run browserSync & watch (default gulp task) gulp
- Access the UI on http://localhost:3016
- Clone the repository
3. Technical description and explanation of design and programming techniques utilised
100% WCAG AA compliant
- Custom focus styling applied when the focus is initiated with an input device other than a mouse, such as a keyboard, for further assistance for users with visual impairment.
Success Criterion 2.4.7
No Focus

Mouse Focus

Keyboard Focus

- Uses WAI-ARIA labels and and adjusts their values in the DOM as the user interacts with the application.
Success Criterion 1.3.1
- Accessibility checked and passed.

- Custom focus styling applied when the focus is initiated with an input device other than a mouse, such as a keyboard, for further assistance for users with visual impairment.
Responsive
- 4 breakpoints; mobile, table, laptop & desktop.
- Responsive on all screen sizes with an identical experience on viewports as narrow as 200px.

Browser compatible
Minimum Supported Version
Name Version Year
Chrome2.1 2008
Edge12.0 2015
Firefox4.0 2011
Internet Explorer10.0 2012
Opera10.5 2009
Safari3.1 2010
Global classes and JS function
Some global JS functions and CSS classes were built to mimic the extension and use of frameworks. These global structures include:
- SCSS mixins: /src/global_top/_scss/__global_sass/_mixin.scss
- SCSS loops: /src/global_top/_scss/_global_classes/icon_font/icons.scss
- A custom icon font using icomoon /dest/_global/fonts/icomoon
- A simple client-side input validation setup /src/global_top/js/form
Server-side validation and processing using PHP
/src/module/cheque/_outcome.php
- A simple server-side data validation process using PHP has been added to avoid DDoS attacks.
- The numbers are converted to text using the PHP class NumberFormatter
- Some adjustments have been added to improve the grammar and formatting of the output.
The Gulp file
- Compile SCSS, group it into breakpoints, minify the CSS code and concat it into a single file.
- Transpile ES6 and churn out as widely supported "plain" JavaScript and uglify the code without removing licence notices in the JS files.
- Render pages from templates and minify HTML.
- Watch and inject SCSS edits and reload pages on JS and HTML edits.
4. Source Code
- Detailed in context comments have been added to the source code.
- The source code has been pushed to a repository on GitHub
https://github.com/kareemhb/cheque-writing-demo
git clone https://github.com/kareemhb/cheque-writing-demo.git