DemoUpCliplister Coding Challenge Backend
DemoUpCliplister Coding Challenge Backend
Backend
Node.js | Typescript | Layered Architecture | TDD | Micro Services
Welcome! You are assigned the Cliplister Coding Challenge for Senior Developers consisting of a
theoretical and a practical part. The theoretical part includes conceptual work (no code), while
the practical part includes creating a backend application using the Express framework.
Theory (1h)
Model conceptually the data storage for millions of Assets, Categories and Collections within
their bounded contexts in a microservice-oriented architecture (no mono schema).
● Model the following entities and their microservice boundaries with a graphical tool of
your choice (Drawio, Miro, pen and paper, etc.):
o Asset (an Image or Document)
o Category
o Collection (a collection of Assets, being like a container for one or more assets)
● Model the relations
o An Asset has one or more Categories
o A Collection has one or more Assets
o A Collection has one or more Categories (same Categories from above)
● Justify/argue your solution with assumed requirements! When there are rejected
solutions, tell us why you rejected them.
● Pro task: distinguish between read and write optimized model.
Practice (2h)
You are provided with an initial boilerplate ↗ of an Express application and a Dockerfile for
setting up a Postgres database. The app should handle basic CRUD operations of an “Asset” (an
Asset here being a picture or a video). To query the database and for schema creation you can
use an ORM or native queries (schema creation code provided in the boilerplate).
Evaluation
Your submission will be evaluated based on the following criteria:
Deliverables
● A link to a repository (or a zip file) containing the project.
● Include additional instructions on how to use the application in README.
● Ensure that the application runs without any errors or issues.
● Include a brief explanation of your approach and any additional notes you feel are
necessary.
Note: The challenge is designed to be completed within 3 hours, but you can submit it within 24
hours if needed.