Skip to content

MoeidHeidari/Location-based-searcher

Repository files navigation

Company anniversary

Service description?

Company celebrates its company anniversary and wants to invite all customers located within a 100km radius. This repository hosts a solution implemented to meet the requirements of Parloa's anniversary application

Prerequisites:

NPM 14.X

Docker

docker-compose

helm -for production

skaffold -for production

minikube (or any other kubernetes cluster) -for production


Clone

git clone https://gitlab.com/moeidtopcoder2/parloa.git
cd parloa

Project Documentation project-documentation.md


Hierarchy

├── k8s

│ └── templates

│ └── tests

├── scripts

├── src

│ ├── application

│ │ ├── controllers

│ │ └── dtos

│ ├── domain

│ │ ├── decorators

│ │ ├── entities

│ │ ├── enums

│ │ │ └── httpResponse

│ │ ├── exceptions

│ │ ├── guards

│ │ ├── helpers

│ │ ├── interceptors

│ │ ├── interfaces

│ │ ├── modules

│ │ │ └── common

│ │ ├── pipes

│ │ └── services

│ │ └── repositories

│ │ └── common

│ └── infrastructure

│ ├── config

│ └── modules

│ └── common

└── __test__

├── controllers

├── e2e

├── factories

└── service

Instllation

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 "invitation:latest"

-build_and_run_docker Build the docker image and run on local machine

-stop_docker Stop running docker container named "invitation"

-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.

Run without script

npm install

npm start

Run the tests

npm test

linting

npm run lint

generate documentation

npm run doc

running on

http://localhost:7000


Build docker image

docker build . -t {image-name}

.env

NODE_ENV={production|development}

NODE_PORT={port-number}

PARLOA_LAT={parloa (default is 52.493256)}
PARLOA_LONG={parloa (default is 52.493256)}

Run in Browser

http://localhost:{port-number}/api/v1/invitation/customers?radius={radius}&page={page_number_}&limit={limit_number}


API documentation

http://localhost:{port-number}/api


Health check

http://localhost:{port-number}/health


Deploy to kubernetes

through Makefile

make

through config files

cd k8s/configFiles
kubectl apply -f invitation-namespace.yaml,invitation-configmap.yaml,invitation-configmap.yaml,invitation-deployment.yaml,invitation-service.yaml

Prometheus metrics

http://localhost:{port-number}/metrics

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published