This test consists of two parts
- Build a minimal online marketplace application
- Improve interactive performance of a large list
- React app
/apps/frontend
(http://localhost:5173
) - Rest server
/apps/server
(http://localhost:3000
) - Run both apps from the root
pnpm run dev
Build a minimal app for an online marketplace application. The app will be used to manage Product listings, and Order transactions. The app should implement the following functionality:
- Create a new Product.
- View a single products details.
- View a single products order details (if it exits).
- View X amount of products that are sortable by either created date or price
- Ability to purchase the product
- Delete a Product (For testing purposes, deleting a Product should also delete the Order associated with it, if it exists)
You can come up with any frontend design you like You will need to implement both the server and the frontend No authentication is required Products should be a One-to-One relationship with Orders.
- Use any library/tooling that you would like. (React Router, Redux, ChakraUI etc)
- If I try purchase a Product that has already been sold, the endpoint should return an error.
- Use the mocked database in
./data/Database
to manage all data - Implement input validation for all endpoints
- Implement error handling for all endpoints
- Write tests for critical paths
- Implement under
/products
route
Please visit http://localhost:5173/users
.
We have a very poorly written web page which displays 10,000 users data as a list. Extra information can be seen on hover. Currently there are a few performance issues:
- Both searching and selecting a user is very laggy.
- An excessive amount of nodes are on the page.
The task is to improve on the issues above to make the experience better for the user. You can do what you want to the page, completely refactor it if you like! But because this is a frontend task the only requirement is that the API must always return 10,000 users. Same as task one, you are free to use any library you like(state management, styling, virtualization etc).
- Fork this repository.
- Complete the test and push your code to a private GitHub repo.
- Reach out to Askable hiring manager, they will provide you with some GitHub names to add as collaborators who will review your submission.
Reach out if you have any questions. Good Luck!