...
Step 1 : What You Will Need
What you need to have installed | Debian/Ubuntu notes | Mac notes |
---|---|---|
Web browser (like Google Chrome) | Google Chrome On Ubuntu 16.06 LTS | Google Chrome |
Ensure that you have Oracle Java SDK 8 | You can use this tutorial to do that. | See this tutorial at mkyong. |
You might have multiple Java versions installed so make sure that Java 8 is used. java -version # should display java version "1.8.0_XXX". | This tutorial teaches how to choose the correct Java version like this:
| |
Install Git | Install git using This Article | Here we use Homebrew approach (not the only package manager but one that is preferred on mac)
|
Install MySQL 5.7 You don't need to install MySQL if you just want to run demo server without persistence (Option A in Step 3). | Install MySQL 5.7 Using This Guide | brew install mysql@5.7 and to start the service: brew services start mysql@5.7 |
Optional step: install Maven and ensure that artifacts are stored in $USER_HOME/.m2/repository | Install maven using mkyong | brew install maven |
Optional step: install Gradle This step is optional as all the Fineract CN | Use sdkman to install Gradle 4.5 | brew install gradle |
You need NoSQL database Alternative: If you have Docker installed you docker run -p9042:9042 cassandra:3.11 | Install cassandra 3.11 using this guide |
|
Node 6.10+ and NPM 3+ | Ensure you have Node 6.10.0+ and NPM 3+ installed. |
npm (node package manager for javascript) is another package manager, homebrew still treats it like a keg to be installed, instructions |
Node packages | npm i | npm i |
Optional step: Install Nginx | Install Nginx using this guide |
Step 2: Get program code
You have 3 options.
Recommended: You clone demo-server and let it download all dependendent fineract-cn-* libraries and projects from Artifactory to your local Maven repository
Follow the instructions:
git clone https://github.com/apache/fineract-cn-demo-server.git
cd fineract-cn-demo-server/
cd scripts/dependencies_to_local_maven
mvn package (this brings all the fineract-cn-* dependencies from Artifactory to your local maven repo)
cd ../..
./gradlew build- You can switch to options #2 or #3 below later, once you start changing the program code.
- Fineract uses Gradle for building but for demo server we need to get dependent projects to local maven repository because this is where demo server looks for them.
- You clone Fineract CN repositories directly
- later if you want to contribute to some microservice then you have to create a fork and switch to that fork to create a pull request
- this way you don't have to fork anything and you can use `git pull` to get latest updates
- For this option: download and run the script using `bash initial-setup.sh apache`
- Note : Ensure that you get BUILD SUCCESSFUL after iteration for EACH repository. Also ensure that artifacts show up in $USER_HOME/.m2/repository/org/apache/fineract/cn/
- You fork all the Apache Fineract CN repositories to yourGithubHandle and check out code from there.
- This way you can directly work on your forks (but your forks don't get code updates automatically with git pull)
- after you have logged in to Github with yourGithubHandle and created forks of apache Fineract CN repositories
- For this option: download and run the script using `bash initial-setup.sh yourGithubHandle`
- Note : Ensure that you get BUILD SUCCESSFUL after iteration for EACH repository. Also ensure that artifacts show up in $USER_HOME/.m2/repository/org/apache/fineract/cn/
...
This takes some time so be patient. From console output you see demo-server starting up services one by one. Eventually the following services should be set up:
Service | Port | Link |
---|---|---|
Identity Service: | 2021 | http://localhost:2021/identity/v1 |
Office Service: | 2023 | http://localhost:2023/office/v1 |
Customer Service | 2024 | http://localhost:2024/customer/v1 |
Accounting Service | 2025 | http://localhost:2025/accounting/v1 |
Portfolio Service | 2026 | http://localhost:2026/portfolio/v1 |
Deposit Service | 2027 | http://localhost:2027/deposit/v1 |
Teller Service | 2028 | http://localhost:2028/teller/v1 |
Reporting Service | 2029 | http://localhost:2029/reporting/v1 |
Cheque Service | 2030 | http://localhost:2030/cheques/v1 |
Payroll Service | 2031 | http://localhost:2031/payroll/v1 |
Group Service | 2032 | http://localhost:2032/group/v1 |
Notification Service | 2033 | http://localhost:2033/notification/v1 |
The following log statement signals the completion of the build:
...
Page properties | ||
---|---|---|
| ||
|
Useful external links