A standard Sudoku contains 81 cells, in a 9×9 grid, and has 9 boxes, each box being the intersection of the first, middle, or last 3 rows, and the first, middle, or last 3 columns. Each cell may contain a number from one to nine, and each number can only occur once in each row, column, and box. A Sudoku starts with some cells containing numbers (clues), and the goal is to solve the remaining cells. Proper Sudokus have one solution. Players and investigators use a wide range of computer algorithms to solve Sudokus, study their properties, and make new puzzles, including Sudokus with interesting symmetries and other properties.
NPM 14.X
Docker
docker-compose
helm -for production
skaffold -for production
minikube (or any other kubernetes cluster) -for production
git clone https://gitlab.com/Moeidtopcoder/sudoku-challenge.git
cd sudoku-challenge
├── k8s
│ └── templates
│ └── tests
├── scripts
├── src
│ ├── application
│ │ ├── controllers
│ │ └── dtos
│ ├── domain
│ │ ├── decorators
│ │ ├── entities
│ │ ├── enums
│ │ │ └── httpResponse
│ │ ├── exceptions
│ │ ├── guards
│ │ ├── helpers
│ │ ├── interceptors
│ │ ├── interfaces
│ │ ├── modules
│ │ │ └── common
│ │ ├── pipes
│ │ └── services
│ │ └── common
│ └── infrastructure
│ ├── config
│ └── modules
│ └── common
└── __test__
├── controllers
├── e2e
├── factories
└── service
cd scripts
bash start.h {argument}
Arguments:
bash start.h -h
-h, --help Print this help and exit
-build_docker Build the docker image called "sudoku:latest"
-build_and_run_docker Build the docker image and run on local machine
-stop_docker Stop running docker container named "sudoku"
-run_app Run application with npm in usual way for development
-run_test Run npm test
-run_lint Run npm lint
-generate_doc Generate the code documentation
-deploy_on_kubernetes you need to have a kubernetes cluster already up and running on the machine.
npm install
npm start
npm test
npm run lint
npm run doc
running on
docker build . -t {image-name}
NODE_ENV={production|development}
NODE_PORT={port-number}
DIMENSION={dimension}
http://localhost:{port-number}/api/v1/sudoku
http://localhost:{port-number}/api
http://localhost:{port-number}/health
through Makefile
make
through config files
cd k8s/configFiles
kubectl apply -f sudoku-namespace.yaml,sudoku-configmap.yaml,sudoku-deployment.yaml,sudoku-service.yaml