This is a pretty straight forward webapp - the idea is to build a “Product Catalog” it will do two things:
- Get products
- Create a product
You will be using our DotCMS API to get content, no extra backend work is need it.
There is a already content created here for demo purpose.
Here is the access information for a dotCMS demo server that resets/rebuilds itself at 12:00AM and 12:00PM US eastern time:
http://demo.dotcms.com (front end)
http://demo.dotcms.com/admin (backend)
- U: admin@dotcms.com
- P: admin
- Use DotCMS Content API: documentation
- Use the Image Resizing and Processing API to print out the images. Also see the Standard REST API documentation.
- JavaScript Framework: React or Angular.
- CSS: No Bootstrap, Foundation or CSS framework at all. You can use preprocessors and/or css-in-js
- Please create a Github repo and add
fmontes
as collaborator.
- Code quality: clean, scalable, semantic, etc...
- Design: UX and UI
- Performance
- Responsive
- Completion (is ok not to complete 100%), we will also evaluate how to attack the problem, how you prioritize tasks and how you use your time.
-
The DotCMS content API will allow you to GET the product listing, you will get a collection of products. Here is an example of the product object.
-
We recommend to read carefully the DotCMS Content API documentation. In short, you can pass parameters to the URL to get the content you need (as pretty much any other rest API)
-
Here is an example of the url to GET the first 10 products: link
In the Product object you'll have a property name: productLine
in that you will have an object that represent a full category, more than one product can contain the same "category" you need to take that into consideration.
- To save content in DotCMS the doc is here
- You need to authenticate to save content, here is the documentation
- You need to submit the all the required fields:
- title: string
- productLine: string // the identifier of the productLink
- productNumber: string
- retailPrice: string
- image: binary
productLine
is a relationship you need to create a<select>
component and the options will be product lines items, the link to get those is here (only the first 10 for this demo) and more information on how to save relationship here.image
is a binary field, the info to save those here
ARE NOT FINAL DESIGN.
- Sidebar with categories, on click show products for that category
- When user clicks in a products show a popup dialog with full product information
- Create a product, form with the required fields to create a product
- Animated transitions.
- Pagination: you can pass to the url API:
/limit/X/offset/X