# coding-challenge-online-shop
Coding challenge for a online shop
## task
### requirements
1. Create a web application with PHP which works like a really small online shop. ✓
2. Create a database with at least 20 products✓ automatically✓ per script. ✓
3. Create a product listing which display all products from the database. ✓
The following information are required:
- price net and gross ✓
- image ✓
- product name ✓
- color ✓
4. Add a “to the basket” button to each product in the listing. ✓
5. Make the product basket work and display all products which are in the basket as a list with
small images. ✓
6. Create a login and registration with e-mail address, password and a name. ✓
7. The login should be session based. ✓
8. Create a checkout which is shown when the user is logged in. ✓
9. The user should be able to choose between 2 payment methods. ✓
Call them method1 ✓ and
method2 ✓.
10. Store the order at the database. ✓
11. Add a color filter to the product list.✓
The user should be able to filter the listing with the existing colors. ✓
### specifications
- Please use PHP ✓, MySQL ✓ and HTML ✓. You can also use CSS, JavaScript, Bootstrap ✓ and jQuery.
- Save your code online at github. ✓
- Please use an autoloader and namespaces. ✓
- Don’t use a ready to go framework. Build the application from the scratch. ✓
- Use transactions if it makes sense. ✓
- Please cover your code with unit tests. ✓
### time frame
- one weekend ✓
## start
To run the program execute:
```bash
bash ./start.sh
```
### Attention
This is a demo program; Everytime when you restart the demo the database will be reset.
### requirements
The start.sh file needs docker and docker-compose.
### access
If you started the application you can access it with a browser on localhost:8100.
## test
To run the tests execute:
```bash
bash ./test.sh
```
Tests just exist for the core, the entities and some other files. UnitTest you will find in the directory of the unit.