- Clone:
git clone [email protected]:ezzatmakar/Top100Movies.git
. - Install Dependencies :
yarn install
. - Create .env file: duplicate
.env-example
and rename it to.env
and open it, change the values. - Run Development:
yarn start:dev
. - Run Production:
yarn build
, after thatyarn start
. - You can you docker for build and run.
Note that: I exposed RESTful APIs
- Authentication is ignored
- I didn't cover all the test cases, I wrote some examples.
- I made some assumptions:
- A user can only rank a movie once
- Also, the rank must be in the range of 1 up to 100.
- if the user ranks a movie with the same value as another movie, I replace it with the new one.
- I choose NoSQL because I have a database server for it.
- I added pipeline for testing with github action.
- I took between 2h to 3h for planning and designing the schema.
- Developing models (schemas) took 2h.
- Develop Movie CRUD operations and its test case take from 6h up to 8h, I implemented RESTful APIs.
- User Movies rank took 3h up to 4h.
- Take a look and refactor the code, It took 3h.