Your task is to create two small applications that make use of a centralized product database:
-
application one provides a CLI command that reads CSV files into
Product
entities and stores them in a database (for example, by using Doctrine ORM) -
the second application provides a simple web interface that allows users to browse the product catalog (for example, use a Bootstrap driven layout)
Based on the initial implementations make some improvements you are interested in the most (for all these tasks try to find existing packages or packs that help you fullfil the task with the at least self-written code as possible) either by modifying any of the existing applications or by creating a new one:
-
create an API that allows to retrieve (and maybe also modify or add) existing products
-
write a client implementation that consumes the API and displays the data being read
-
support different import formats (XML, JSON, etc.)
-
allow to export product data in different formats (XML, JSON, etc.)
-
create a simple admin UI that allows users to create/edit/delete products, as a bonus, seek to protect the admin interface to certain authenticated users
-
think about other data you would like to store with your products, create database migrations that sync your existing schema with the newly invented attributes
-
enrich the front-end with some more or less elaborated search that allows your users to filter the list of products
-
think about a service layer that abstracts some business logic related to your products, find out how to write tests for it
-
implement your own ideas