Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
cb29c04
Merging 4.6 to master (#1040)
reshmi-nair Jan 31, 2022
980eafc
Merge branch 'release-4.7.0' into master
reshmi-nair Jan 31, 2022
30b0d13
SB-28560 Merging 4.6 fixes (#1046)
reshmi-nair Feb 7, 2022
35cdfb6
Merge branch 'release-4.7.0' into master
reshmi-nair Feb 7, 2022
1eafb35
Merge4.6fixes (#1051)
reshmi-nair Feb 11, 2022
60dcb76
Merging Release 4.7.0 to master branch (#1062)
Hari-stackroute Apr 22, 2022
d7680bc
Merging Release 4.9.0 to Master (#1067)
May 18, 2022
03edca2
Merging release-4.9.0 to master branch (#1089)
VenkatKadiveti Jun 23, 2022
63cb95b
Issue #SB-30586 feat:merge release4.10 to master (#1093)
Jul 22, 2022
e608f69
Release 5.0.0 - Merging from 5.0.0 to master (#1118)
Hari-stackroute Nov 9, 2022
eb078b6
Merging release-5.0.0 to master (#1123)
reshmi-nair Nov 11, 2022
8374005
Merging 5.0.0 to master (#1124)
Hari-stackroute Nov 11, 2022
0048056
LR-264 : CSP Changes (#1126) (#1133)
BharathwajShankar Dec 1, 2022
5317c7d
LR-241 - UserOrg Identity manager should be optional for setup (#1121)
BharathwajShankar Dec 5, 2022
57cf6fa
LR-242 - UserOrg-Decoupling the external dependencies (#1122)
BharathwajShankar Dec 9, 2022
59ead91
Release 5.0.1 merging to master (#1137)
Hari-stackroute Jan 11, 2023
933740c
Merge branch 'release-5.1.0' into master
Hari-stackroute Jan 11, 2023
824e455
Merge Release-5.1.0 to master (#1156)
BharathwajShankar Feb 1, 2023
19ebd10
feat: ED-1175 Standalone helm chart for Learner service (#1159)
beepdot Feb 22, 2023
1e8af2f
Issue #LR-101 feat: Moved cassandra.cql to sunbird-utils repo as V1.0…
AmiableAnil Mar 24, 2023
bc27a49
LR-329 - Test Automation for CSP (#1160)
BharathwajShankar Mar 30, 2023
32dc262
LR-521 Merging from Release 5.2.0 to master (#1166)
reshmi-nair Apr 17, 2023
6a709ec
Issue #LR-305 feat - Adding yaml files from docs site (#1167)
BharathwajShankar Apr 18, 2023
fbd2173
LR-521 Merging Release 5.2.0 to master (#1169)
reshmi-nair Apr 18, 2023
395527d
LR-521 merge: Merge pull request #1170 from Sunbird-Lern/release-5.2.0
AmiableAnil Apr 18, 2023
5808a96
LR-583 Merging Release 5.3.0 to master (#1200)
reshmi-nair Jun 20, 2023
66e420d
Issue #LR-122 chore: Replaced learner with userorg (#1201)
AmiableAnil Jun 22, 2023
3328a79
Issue #LR-583 merge: From release-5.3.0 to master (#1202)
AmiableAnil Jun 22, 2023
461c188
Merge branch 'release-5.4.0' into master
AmiableAnil Jun 22, 2023
d96e779
Issue #LR-583 merge: release-5.4.0 to master (#1228)
AmiableAnil Oct 27, 2023
52e0dc9
Issue #LR-639 merge: added user org service api collection (#1221)
BharathwajShankar Oct 27, 2023
300d864
Issue #LR-676 merge: User Delete functionality (#1222)
Jayaprakash8887 Oct 30, 2023
0777fef
Issue #LR-676 merge: User Delete (#1231)
Jayaprakash8887 Nov 10, 2023
f6ed7db
LR-676 merge: repo name changes from sunbird to sunbird_userorg_keysp…
BharathwajShankar Nov 10, 2023
8e2a9d0
Issue #LR-676 merge: Delete user Notification (#1233)
Jayaprakash8887 Nov 21, 2023
28f440a
Issue #LR-704 merge: Removing BMGS hardcoded (#1226)
kumarks1122 Nov 29, 2023
5e59c84
Issue #LR-676 merge: Delete User API (#1234)
Jayaprakash8887 Dec 6, 2023
3487567
Issue #LR-676 merge: Delete User API (#1235)
Jayaprakash8887 Dec 12, 2023
a90364a
Issue #LR-676 merge: Release 7.0.0 1 (#1237)
Jayaprakash8887 Dec 18, 2023
77a8d26
Issue #LR-676 fix: Support email (#1238)
AmiableAnil Jan 18, 2024
cf5df72
Issue #LR-676 fix: Fixed SSO delete user (#1239)
AmiableAnil Jan 30, 2024
38fa371
Issue #LR-676 fix: Fixed KC multiple session remove. (#1240)
AmiableAnil Feb 6, 2024
0d513be
Issue #LR-676 fix: Fixed KC multiple session remove. (#1241)
AmiableAnil Feb 6, 2024
9b1fbb9
Issue #LR-739 chore: Upgraded the scala major version from 2.11 to 2.…
AmiableAnil Feb 27, 2024
a26e9ce
Issue #LR-739 chore: Upgraded the scala major version from 2.11 to 2.…
AmiableAnil Mar 18, 2024
2dd227b
Issue #LR-676 merge: User Delete - ownership transfer api (#1236)
BharathwajShankar Apr 1, 2024
e981b02
Issue #LR-766 chore: upgraded the elasticsearch from 6.8.22 to 7.17.1…
AmiableAnil Apr 12, 2024
9b9ba14
Issue #LR-676 feat: added organisationId validation to ownership tran…
BharathwajShankar Apr 30, 2024
e8d899d
Issue #LR-676 feat: Added postman API collection for delete user and …
BharathwajShankar Apr 30, 2024
f67f4fd
Issue #LR-309 merge: Keycloak changes for admin-client (#1225)
Hari-stackroute Apr 30, 2024
d157d9a
Issue #LR-709 chore: Updated the lang to lang3 (#1249)
AmiableAnil May 2, 2024
6467848
Issue #LR-7:feat Added traceability data for event in del-user and ow…
BharathwajShankar May 23, 2024
75246aa
Issue #LR-766 feat: Fixed Promise error. (#1252)
AmiableAnil May 23, 2024
ac7a278
postman pre-requisite script addition (#1253)
BharathwajShankar Jun 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 9 additions & 5 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,23 @@ version: 2.1
jobs:
build:
machine:
image: ubuntu-2004:202008-01
image: ubuntu-2004:202201-02
# https://circleci.com/docs/parallelism-faster-jobs/
# parallelism: 4
# The resource_class feature allows configuring CPU and RAM resources for each job. Different resource classes are available for different executors. https://circleci.com/docs/2.0/configuration-reference/#resourceclass
resource_class: large
steps:
- checkout
- restore_cache:
key: lms-dependency-cache-{{ checksum "pom.xml" }}
- run: mvn clean install
key: userorg-dependency-cache-{{ checksum "pom.xml" }}
- run: mvn clean install -DCLOUD_STORE_GROUP_ID=$CLOUD_STORE_GROUP_ID -DCLOUD_STORE_ARTIFACT_ID=$CLOUD_STORE_ARTIFACT_ID -DCLOUD_STORE_VERSION=$CLOUD_STORE_VERSION
- run: cd controller && mvn play2:dist
- save_cache:
key: lms-dependency-cache-{{ checksum "pom.xml" }}
key: userorg-dependency-cache-{{ checksum "pom.xml" }}
paths: ~/.m2
- run:
name: Analyze on SonarCloud
command: mvn verify -DskipTests sonar:sonar -Dsonar.projectKey=project-sunbird_sunbird-lms-service -Dsonar.organization=project-sunbird -Dsonar.host.url=https://sonarcloud.io -Dsonar.coverage.exclusions=**/cassandra-utils/**,**/es-utils/**,**/models/**,**/model/**,**/bean/**,**/dto/**,**/client/**,**/bulkupload/**,**/error/**,**/util/search/** -Dsonar.coverage.jacoco.xmlReportPaths=/home/circleci/project/reports/target/jacoco/jacoco.xml
command: mvn verify -DskipTests sonar:sonar -Dsonar.projectKey=Sunbird-Lern_userorg-service -Dsonar.organization=sunbird-lern -Dsonar.host.url=https://sonarcloud.io -Dsonar.coverage.exclusions=**/cassandra-utils/**,**/es-utils/**,**/models/**,**/model/**,**/bean/**,**/dto/**,**/bulkupload/**,**/error/**,**/exception/**,**/util/search/** -Dsonar.coverage.jacoco.xmlReportPaths=/home/circleci/project/reports/target/jacoco/jacoco.xml

workflows:
version: 2.1
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["helm-sub-chart"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true

jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
# Upload entire repository
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ RUNNING_PID
/.target/
/bin/
/logs
.vscode/**
10 changes: 5 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ RUN apk update \
&& apk add unzip \
&& apk add curl \
&& adduser -u 1001 -h /home/sunbird/ -D sunbird \
&& mkdir -p /home/sunbird/learner
&& mkdir -p /home/sunbird
#ENV sunbird_learnerstate_actor_host 52.172.24.203
#ENV sunbird_learnerstate_actor_port 8088
RUN chown -R sunbird:sunbird /home/sunbird
USER sunbird
COPY ./controller/target/learning-service-1.0-SNAPSHOT-dist.zip /home/sunbird/learner/
RUN unzip /home/sunbird/learner/learning-service-1.0-SNAPSHOT-dist.zip -d /home/sunbird/learner/
WORKDIR /home/sunbird/learner/
CMD java -XX:+PrintFlagsFinal $JAVA_OPTIONS -Dplay.server.http.idleTimeout=180s -Dlog4j2.formatMsgNoLookups=true -cp '/home/sunbird/learner/learning-service-1.0-SNAPSHOT/lib/*' play.core.server.ProdServerStart /home/sunbird/learner/learning-service-1.0-SNAPSHOT
COPY ./controller/target/userorg-service-1.0-SNAPSHOT-dist.zip /home/sunbird/
RUN unzip /home/sunbird/userorg-service-1.0-SNAPSHOT-dist.zip -d /home/sunbird/
WORKDIR /home/sunbird/
CMD java -XX:+PrintFlagsFinal $JAVA_OPTIONS -Dplay.server.http.idleTimeout=180s -Dlog4j2.formatMsgNoLookups=true -cp '/home/sunbird/userorg-service-1.0-SNAPSHOT/lib/*' play.core.server.ProdServerStart /home/sunbird/userorg-service-1.0-SNAPSHOT

10 changes: 5 additions & 5 deletions Dockerfile.Build
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ FROM openjdk:8-jdk-alpine
MAINTAINER "Manojv" "manojv@ilimi.in"
WORKDIR /opt
RUN apk update \
&& mkdir -p /opt/learner \
&& mkdir -p /opt/userorg \
&& apk add wget \
&& wget http://www-eu.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz \
&& tar -xvzf apache-maven-3.3.9-bin.tar.gz
ENV M2_HOME /opt/apache-maven-3.3.9
ENV PATH ${M2_HOME}/bin:${PATH}
COPY learner /opt/learner/
WORKDIR /opt/learner/services
RUN mvn clean install -DskipTests
WORKDIR /opt/learner/services/learning-service
COPY userorg /opt/userorg/
WORKDIR /opt/userorg/services
RUN mvn clean install -DskipTests -DCLOUD_STORE_GROUP_ID=org.sunbird -DCLOUD_STORE_ARTIFACT_ID=cloud-store-sdk_2.12 -DCLOUD_STORE_VERSION=1.4.7
WORKDIR /opt/userorg/services/userorg-service
CMD ["mvn", "play2:dist"]
4 changes: 2 additions & 2 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ node('build-slave') {
env.NODE_ENV = "build"
print "Environment will be : ${env.NODE_ENV}"
sh 'git log -1'
sh 'mvn clean install -U -DskipTests=true '
sh "mvn clean install -DskipTests=true -DCLOUD_STORE_GROUP_ID=${params.cloud_store_group_id} -DCLOUD_STORE_ARTIFACT_ID=${params.cloud_store_artifact_id} -DCLOUD_STORE_VERSION=${params.cloud_store_version}"
}

stage('Unit Tests') {
sh "mvn clean install '-Dtest=!%regex[io.opensaber.registry.client.*]' -DfailIfNoTests=false"
sh "mvn clean install '-Dtest=!%regex[io.opensaber.registry.client.*]' -DfailIfNoTests=false -Dsurefire.failIfNoSpecifiedTests=false -DCLOUD_STORE_GROUP_ID=org.sunbird -DCLOUD_STORE_ARTIFACT_ID=cloud-store-sdk_2.12 -DCLOUD_STORE_VERSION=1.4.7"
}
stage('Package') {
dir('controller') {
Expand Down
240 changes: 236 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,239 @@
# sunbird-lms-service
# Sunbird User Org Service

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/b963e5ed122f47b5a27b19a87d9fa6de)](https://app.codacy.com/app/sunbird-bot/sunbird-lms-service?utm_source=github.com&utm_medium=referral&utm_content=project-sunbird/sunbird-lms-service&utm_campaign=Badge_Grade_Settings)
This repository contains the code for the User Org micro-service, providing the APIs for User and Org functionality of Sunbird. The code in this repository is licensed under the MIT License unless otherwise noted. Please see the [LICENSE](https://github.com/project-sunbird/sunbird-lms-service/blob/master/LICENSE) file for details.

This is the repository for Sunbird learning management system (lms) micro-service. It provides the APIs for lms functionality of Sunbird.
## User org development environment setup

The code in this repository is licensed under MIT License unless otherwise noted. Please see the [LICENSE](https://github.com/project-sunbird/sunbird-lms-service/blob/master/LICENSE) file for details.
This readme file provides instructions for installing and starting the User Org Service and setting up the default organization & user creation in a local machine.

### System Requirements

### Prerequisites

- Java 11
- Latest Docker
- Latest Maven
(Only For Mac m1 users use 3.8.8 Maven version)

### Prepare folders for database data and logs

To prepare folders for database data and logs, run the following command:

```shell
mkdir -p ~/sunbird-dbs/cassandra ~/sunbird-dbs/es
export sunbird_dbs_path=~/sunbird-dbs
```

To verify the creation of folders, run:

```shell
echo $sunbird_dbs_path
```

### Cassandra database setup in Docker

1. To get the Cassandra image, use the following command:

```shell
docker pull cassandra:3.11.6
```
For Mac M1 users follow the bellow command:
```shell
docker pull --platform=linux/amd64 cassandra:3.11.6
```

For the network, you can either use an existing network or create a new one by executing the following command:
```shell
docker network create sunbird_db_network
```

2. To create the Cassandra instance, run the following command:

```shell
docker run -p 9042:9042 --name sunbird_cassandra \
-v $sunbird_dbs_path/cassandra/data:/var/lib/cassandra \
-v $sunbird_dbs_path/cassandra/logs:/opt/cassandra/logs \
-v $sunbird_dbs_path/cassandra/backups:/mnt/backups \
--network sunbird_db_network -d cassandra:3.11.6
```
For Mac M1 users follow the below command:
```shell
docker run --platform=linux/amd64 -p 9042:9042 --name sunbird_cassandra \
-v $sunbird_dbs_path/cassandra/data:/var/lib/cassandra \
-v $sunbird_dbs_path/cassandra/logs:/opt/cassandra/logs \
-v $sunbird_dbs_path/cassandra/backups:/mnt/backups \
--network sunbird_db_network -d cassandra:3.11.6
```

3. To verify the setup, run the following command, which will show the status of Cassandra as up and running:

```shell
docker ps -a | grep cassandra
```

## To create/load keyspaces and tables to Cassandra

Click the link [sunbird-utils-cassandra-setup](https://github.com/Sunbird-Lern/sunbird-utils/tree/release-5.3.0#readme) and follow the steps for creating/loading the Cassandra keyspaces and tables to your development environment.

Note: It is mandatory to follow the instructions provided in the link.

4. To verify the creation of keyspaces and tables, connect to the Cassandra Docker container using SSH and run the following command:

```shell
docker exec -it sunbird_cassandra /bin/bash
```

## Setting up Elastic Search in Docker

To set up Elastic Search in Docker, follow the below steps:

1. Obtain the Elastic Search image by executing the following command:

```shell
docker pull elasticsearch:6.8.11
```

For Mac M1 users follow the bellow command:
```shell
docker pull --platform=linux/amd64 elasticsearch:6.8.11
```

2. Create an Elastic Search instance by executing the following command to run it in a container:

```shell
docker run -p 9200:9200 --name sunbird_es -v
$sunbird_dbs_path/es/data:/usr/share/elasticsearch/data -v
$sunbird_dbs_path/es/logs://usr/share/elasticsearch/logs -v
$sunbird_dbs_path/es/backups:/opt/elasticsearch/backup
-e "discovery.type=single-node" --network sunbird_db_network
-d docker.elastic.co/elasticsearch/elasticsearch:6.8.11
```

For Mac M1 users follow the bellow command::
```shell
docker run --platform=linux/amd64 -p 9200:9200 --name sunbird_es -v
$sunbird_dbs_path/es/data:/usr/share/elasticsearch/data -v
$sunbird_dbs_path/es/logs://usr/share/elasticsearch/logs -v
$sunbird_dbs_path/es/backups:/opt/elasticsearch/backup
-e "discovery.type=single-node" --network sunbird_db_network
-d docker.elastic.co/elasticsearch/elasticsearch:6.8.11
```

The above command performs the following actions:
- "-p 9200:9200" maps the host's port 9200 to the container's port 9200, allowing access to the Elasticsearch API.
- "--name <container_name>" assigns a name to the container, which can be used to reference it in other Docker commands.
- "-v <host_directory_path>/es/data:/usr/share/elasticsearch/data" mounts the host's directory "<host_directory_path>/es/data" as the Elasticsearch data directory inside the container.
- "-v <host_directory_path>/es/logs://usr/share/elasticsearch/logs" mounts the host's directory "<host_directory_path>/es/logs" as the Elasticsearch logs directory inside the container.
- "-v <host_directory_path>/es/backups:/opt/elasticsearch/backup" mounts the host's directory "<host_directory_path>/es/backups" as the Elasticsearch backups directory inside the container.
- "-e "discovery.type=single-node"" sets an environment variable "discovery.type" with the value "single-node", which tells Elasticsearch to start as a single-node cluster.
- "--network <network_name>" assigns the container to a Docker network, which is used to connect the container to other containers in the same network.
- "-d" runs the container in detached mode, which allows it to run in the background.

To verify the setup, execute the following command. It will display the elastic search status as up and running.
```shell
docker ps -a | grep es
```

If you are using an Ubuntu system, perform the following step to ensure that the necessary permissions are created for the folder:
```shell
chmod -R 777 sunbird-dbs/es
```

### Elastic Search Indices and Mappings Setup

To create indices, follow these steps:

1. Copy the JSON content of the index from the provided link below for each index.
2. Replace `<indices_name>` with the name of the index for which you want to create the mapping.
3. Replace `<respective_index_json_content>` with the JSON content you copied in step 1.

Use the following api to create each index:

```
PUT {{es_host}}/<indices_name>
Body : <respective_index_json_content>
```

Here's an example curl command for creating the `location` index:

```
curl --location --request PUT 'localhost:9200/location' \
--header 'Content-Type: application/json' \
--data '<location_json_content>'
```

Make sure to replace `location.json` with the name of the index JSON file for the corresponding index.

Here's the list of indices to create and their corresponding links:

- [user](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/indices/userv3.json)
- [userfeed](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/indices/userfeed.json)
- [usernotes](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/indices/usernotes.json)
- [org](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/indices/orgv3.json)
- [location](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/indices/location.json)

To create mappings for the listed indices, follow these steps:

1. Copy the JSON content of the mapping from the provided link for each index.
2. Replace `<indices_name>` with the name of the index for which you want to create the mapping.
3. Replace `<respective_mapping_json_content>` with the JSON content you copied in step 1.

Use the following api to create each mapping:

```
PUT {{es_host}}/<indices_name>/_mapping/_doc
Body: <respective_mapping_json_content>
```

Here's an example curl command for creating the mapping for the `location` index:

```
curl --location --request PUT 'localhost:9200/location/_mapping/_doc' \
--header 'Content-Type: application/json' \
--data '@location-mapping.json'
```

Make sure to replace `location-mapping.json` with the name of the mapping JSON file for the corresponding index.

Here's the list of mappings to create and their corresponding links:

- [user](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/mappings/userv3-mapping.json)
- [userfeed](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/mappings/userfeed-mapping.json)
- [usernotes](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/mappings/usernotes-mapping.json)
- [org](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/mappings/orgv3-mapping.json)
- [location](https://github.com/project-sunbird/sunbird-devops/blob/release-5.3.0-lern/ansible/roles/es-mapping/files/mappings/location-mapping.json)

## User Org Service Setup

To set up the User Org service, follow the steps below:

1. Clone the latest branch of the user-org service using the following command:
```shell
git clone https://github.com/Sunbird-Lern/sunbird-lms-service.git
```

2. Set up the necessary environment variables by running the following script in the path `<project-base-path>/sunbird-lms-service`:
```shell
./scripts/userorg-config.sh
```

3. Build the application using the following maven command in the path `<project-base-path>/sunbird-lms-service`:
```shell
mvn clean install -DskipTests -DCLOUD_STORE_GROUP_ID=org.sunbird -DCLOUD_STORE_ARTIFACT_ID=cloud-store-sdk_2.12 -DCLOUD_STORE_VERSION=1.4.7
```
Make sure the build is successful before proceeding to the next step. If the build is not successful,
fix any configuration issues and rebuild the application.

4. Run the netty server using the following maven command in the path `<project-base-path>/sunbird-lms-service/controller`:
```shell
mvn play2:run
```

5. Verify the database connections by running the following command:
```shell
curl --location --request GET 'http://localhost:9000/health’
```
If all connections are established successfully, the health status will be shown as 'true', otherwise it will be 'false'.

To make the User/Org service completely working, some pre-required configuration setup is mandatory.
Follow the steps given in the link [pre-required configuration setup](https://github.com/Sunbird-Lern/sunbird-lms-service/blob/release-5.3.0/lernsetup.md) to complete the setup.
Loading