diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index b13273e48..d3d0097d8 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -32,6 +32,7 @@ import { CentersModule } from './centers/centers.module';
import { AccountingModule } from './accounting/accounting.module';
import { SelfServiceModule } from './self-service/self-service.module';
import { SystemModule } from './system/system.module';
+import { ProductsModule } from './products/products.module';
/** Main Routing Module */
import { AppRoutingModule } from './app-routing.module';
@@ -60,6 +61,7 @@ import { AppRoutingModule } from './app-routing.module';
AccountingModule,
SelfServiceModule,
SystemModule,
+ ProductsModule,
AppRoutingModule
],
declarations: [WebAppComponent, NotFoundComponent],
diff --git a/src/app/core/shell/toolbar/toolbar.component.html b/src/app/core/shell/toolbar/toolbar.component.html
index af89ec366..f44aa8734 100644
--- a/src/app/core/shell/toolbar/toolbar.component.html
+++ b/src/app/core/shell/toolbar/toolbar.component.html
@@ -103,7 +103,7 @@
-
+
diff --git a/src/app/products/products-routing.module.ts b/src/app/products/products-routing.module.ts
new file mode 100644
index 000000000..f4cfff6f4
--- /dev/null
+++ b/src/app/products/products-routing.module.ts
@@ -0,0 +1,43 @@
+/** Angular Imports */
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+/** Routing Imports */
+import { Route } from '../core/route/route.service';
+
+/** Translation Imports */
+import { extract } from '../core/i18n/i18n.service';
+
+/** Custom Components */
+import { ProductsComponent } from './products.component';
+
+/** Custom Resolvers */
+
+/** Products Routes */
+const routes: Routes = [
+ Route.withShell([
+ {
+ path: 'products',
+ data: { title: extract('Products'), breadcrumb: 'Products' },
+ children: [
+ {
+ path: '',
+ component: ProductsComponent
+ },
+ ]
+ }
+ ])
+];
+
+/**
+ * Products Routing Module
+ *
+ * Configures the products routes.
+ */
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
+ providers: [
+ ]
+})
+export class ProductsRoutingModule { }
diff --git a/src/app/products/products.component.html b/src/app/products/products.component.html
new file mode 100644
index 000000000..c9d9c06a2
--- /dev/null
+++ b/src/app/products/products.component.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Loan Products
+ Add new loan product or modify or inactivate loan product
+
+
+
+
+
+
+ Savings Products
+ Add new savings product or modify or inactivate savings product
+
+
+
+
+
+
+ Share Products
+ Add new share product or modify or inactivate share product
+
+
+
+
+
+
+ Charges
+ Define charges/penalties for loan products, savings and deposit products
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Products Mix
+ Defines rules for taking multiple rules
+
+
+
+
+
+
+ Fixed Deposit Products
+ Add, modify or inactivate a Fixed deposit product
+
+
+
+
+
+
+ Recurring Deposit Products
+ Add, modify or inactivate a Recurring Deposit product
+
+
+
+
+
+
+ Manage Tax Configurations
+ Define Tax components and Tax groups
+
+
+
+
+
+
+ Floating Rates
+ Define floating rates for loan products
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/products/products.component.scss b/src/app/products/products.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/app/products/products.component.ts b/src/app/products/products.component.ts
new file mode 100644
index 000000000..bfe1a472f
--- /dev/null
+++ b/src/app/products/products.component.ts
@@ -0,0 +1,19 @@
+/** Angular Imports */
+import { Component, OnInit } from '@angular/core';
+
+/**
+ * Products component.
+ */
+@Component({
+ selector: 'mifosx-products',
+ templateUrl: './products.component.html',
+ styleUrls: ['./products.component.scss']
+})
+export class ProductsComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+}
diff --git a/src/app/products/products.module.ts b/src/app/products/products.module.ts
new file mode 100644
index 000000000..92037701c
--- /dev/null
+++ b/src/app/products/products.module.ts
@@ -0,0 +1,28 @@
+/** Angular Imports */
+import { NgModule } from '@angular/core';
+
+/** Custom Modules */
+import { SharedModule } from '../shared/shared.module';
+import { ProductsRoutingModule } from './products-routing.module';
+
+/** Custom Components */
+import { ProductsComponent } from './products.component';
+
+
+/**
+ * Products Module
+ *
+ * All components related to product functions should be declared here.
+ */
+@NgModule({
+ imports: [
+ SharedModule,
+ ProductsRoutingModule
+ ],
+ declarations: [
+ ProductsComponent,
+ ],
+ entryComponents: [
+ ]
+})
+export class ProductsModule { }
diff --git a/src/app/products/products.service.spec.ts b/src/app/products/products.service.spec.ts
new file mode 100644
index 000000000..3817eb4d4
--- /dev/null
+++ b/src/app/products/products.service.spec.ts
@@ -0,0 +1,15 @@
+import { TestBed, inject } from '@angular/core/testing';
+
+import { ProductsService } from './products.service';
+
+describe('ProductsService', () => {
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ providers: [ProductsService]
+ });
+ });
+
+ it('should be created', inject([ProductsService], (service: ProductsService) => {
+ expect(service).toBeTruthy();
+ }));
+});
diff --git a/src/app/products/products.service.ts b/src/app/products/products.service.ts
new file mode 100644
index 000000000..e3da05124
--- /dev/null
+++ b/src/app/products/products.service.ts
@@ -0,0 +1,20 @@
+/** Angular Imports */
+import { Injectable } from '@angular/core';
+import { HttpClient, HttpParams } from '@angular/common/http';
+
+/** rxjs Imports */
+import { Observable } from 'rxjs';
+
+/**
+ * Products service.
+ */
+@Injectable({
+ providedIn: 'root'
+})
+export class ProductsService {
+
+ /**
+ * @param {HttpClient} http Http Client to send requests.
+ */
+ constructor(private http: HttpClient) { }
+}
diff --git a/src/app/shared/icons.module.ts b/src/app/shared/icons.module.ts
index 46fe8eebc..e4d7ba910 100644
--- a/src/app/shared/icons.module.ts
+++ b/src/app/shared/icons.module.ts
@@ -9,6 +9,7 @@ import {
faArchive,
faBars,
faBell,
+ faBriefcase,
faCalendar,
faChartBar,
faCheckCircle,
@@ -41,6 +42,7 @@ import {
faPlay,
faPlus,
faPlusCircle,
+ faRandom,
faRoad,
faSearch,
faShieldAlt,
@@ -49,6 +51,8 @@ import {
faSync,
faTable,
faTachometerAlt,
+ faTag,
+ faTags,
faTimesCircle,
faTrash,
faUndo,
@@ -64,6 +68,7 @@ library.add(
faArchive,
faBars,
faBell,
+ faBriefcase,
faCalendar,
faChartBar,
faCheckCircle,
@@ -96,6 +101,7 @@ library.add(
faPlay,
faPlus,
faPlusCircle,
+ faRandom,
faRoad,
faSearch,
faShieldAlt,
@@ -104,6 +110,8 @@ library.add(
faSync,
faTable,
faTachometerAlt,
+ faTag,
+ faTags,
faTimesCircle,
faTrash,
faUndo,