Implementing automatic inclusion of licenses
This commit is contained in:
committed by
Michael Vorburger ⛑️
parent
291edd7a3f
commit
a58debcb2e
@@ -10,7 +10,7 @@ The target audience for this report is both system integrators (who will use the
|
||||
|
||||
==== The Idea
|
||||
|
||||
Mifos was an idea born out of a wish to create and deploy technology that allows the microfinance industry to scale. The goal is to:
|
||||
Fineract was an idea born out of a wish to create and deploy technology that allows the microfinance industry to scale. The goal is to:
|
||||
|
||||
- Produce a gold standard management information system suitable for microfinance operations
|
||||
- Acts as the basis of a platform for microfinance
|
||||
@@ -23,12 +23,13 @@ Mifos was an idea born out of a wish to create and deploy technology that allows
|
||||
- Late 2011: Grameen Foundation handed over full responsibility to open source community.
|
||||
- 2012: Mifos X platform started. Previous members of project come together under the name of Community for Open Source Microfinance (COSM / OpenMF)
|
||||
- 2013: COSM / OpenMF officially rebranded to Mifos Initiative and receive US 501c3 status.
|
||||
- 2016: Fineract 1.x began incubation at Apache
|
||||
|
||||
==== Project Related
|
||||
|
||||
- Project url is https://github.com/openMF/mifosx
|
||||
- Download from https://sourceforge.net/projects/mifos/
|
||||
- Download stats
|
||||
- Project url is https://github.com/apache/fineract
|
||||
- Issue tracker is https://issues.apache.org/jira/projects/FINERACT/summary
|
||||
- Download from http://fineract.apache.org/
|
||||
|
||||
=== System Overview
|
||||
|
||||
@@ -91,8 +92,8 @@ At a higher level though we see the capabilities fall into the following categor
|
||||
|
||||
=== Technology
|
||||
|
||||
* Java 11: http://www.oracle.com/technetwork/java/javase/downloads/index.html
|
||||
* JAX-RS 1.0: using Jersey (1.17.x)
|
||||
* Java: http://www.oracle.com/technetwork/java/javase/downloads/index.html
|
||||
* JAX-RS using Jersey
|
||||
* JSON using Google GSON
|
||||
* Spring I/O Platform: http://spring.io/platform
|
||||
** Spring Framework
|
||||
@@ -116,7 +117,7 @@ See online API Documentation for more detail.
|
||||
|
||||
==== Multi-tenanted
|
||||
|
||||
The mifos platform has been developed with support for multi-tenancy at the core of its design. This means that it is just as easy to use the platform for Software-as-a-Service (SaaS) type offerings as it is for local installations.
|
||||
The Fineract platform has been developed with support for multi-tenancy at the core of its design. This means that it is just as easy to use the platform for Software-as-a-Service (SaaS) type offerings as it is for local installations.
|
||||
|
||||
The platform uses an approach that isolates an FIs data per database/schema (See Separate Databases and Shared Database, Separate Schemas).
|
||||
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
@startuml
|
||||
!include <awslib/AWSCommon>
|
||||
|
||||
' Uncomment the following line to create simplified view
|
||||
!include <awslib/AWSSimplified>
|
||||
|
||||
!include <awslib/General/Users>
|
||||
!include <awslib/Mobile/APIGateway>
|
||||
!include <awslib/SecurityIdentityAndCompliance/Cognito>
|
||||
!include <awslib/Compute/Lambda>
|
||||
!include <awslib/Database/DynamoDB>
|
||||
!include <awslib/Storage/SimpleStorageServiceS3>
|
||||
!include <awslib/InternetOfThings/IoTRule>
|
||||
!include <awslib/InternetOfThings/IoTAction>
|
||||
!include <awslib/Analytics/KinesisDataStreams>
|
||||
!include <awslib/ApplicationIntegration/SQSQueue>
|
||||
|
||||
left to right direction
|
||||
|
||||
agent "Published Event" as event #fff
|
||||
|
||||
IoTRule(iotRule, "Action Error Rule", "error if Kinesis fails")
|
||||
KinesisDataStreams(eventStream, "IoT Events", "2 shards")
|
||||
SQSQueue(errorQueue, "Rule Error Queue", "failed Rule actions")
|
||||
|
||||
event --> iotRule : JSON message
|
||||
iotRule --> eventStream : messages
|
||||
iotRule --> errorQueue : Failed action message
|
||||
|
||||
Users(sources, "Events", "millions of users")
|
||||
APIGateway(votingAPI, "Voting API", "user votes")
|
||||
Cognito(userAuth, "User Authentication", "jwt to submit votes")
|
||||
Lambda(generateToken, "User Credentials", "return jwt")
|
||||
Lambda(recordVote, "Record Vote", "enter or update vote per user")
|
||||
DynamoDB(voteDb, "Vote Database", "one entry per user")
|
||||
|
||||
SimpleStorageServiceS3(s3_partner, "Vendor's S3", "Technology", "Optional Description")
|
||||
SimpleStorageServiceS3(s3_internal, "Internal", "Technology", "Optional Description")
|
||||
|
||||
s3_internal <- s3_partner
|
||||
|
||||
sources --> userAuth
|
||||
sources --> votingAPI
|
||||
userAuth <--> generateToken
|
||||
votingAPI --> recordVote
|
||||
recordVote --> voteDb
|
||||
@enduml
|
||||
@@ -1,64 +0,0 @@
|
||||
@startuml
|
||||
!includeurl https://raw.githubusercontent.com/ebbypeter/Archimate-PlantUML/master/Archimate.puml
|
||||
'!include <archimate/Archimate.puml>
|
||||
|
||||
title Archimate Example - Relationships
|
||||
|
||||
'LAYOUT_AS_SKETCH
|
||||
'LAYOUT_LEFT_RIGHT
|
||||
'LAYOUT_TOP_DOWN
|
||||
|
||||
Business_Service(Service01, "Service 01")
|
||||
Application_Service(Service02, "Service 02")
|
||||
Technology_Service(Service03, "Service03")
|
||||
|
||||
Rel_Composition_Right(Service01, Service02, "Composition")
|
||||
Rel_Aggregation(Service01, Service02, "Aggregation")
|
||||
Rel_Assignment(Service01, Service02, "Assignment")
|
||||
Rel_Specialization(Service01, Service02, "Specialization")
|
||||
Rel_Serving(Service01, Service02, "Serving")
|
||||
Rel_Association(Service02, Service03, "Association")
|
||||
Rel_Flow(Service02, Service03, "Flow")
|
||||
Rel_Realization(Service02, Service03, "Realization")
|
||||
Rel_Triggering(Service02, Service03, "Triggering")
|
||||
Rel_Access(Service02, Service03, "Access")
|
||||
Rel_Influence(Service02, Service03, " + Influence")
|
||||
|
||||
Grouping(Example01, "Example 01"){
|
||||
Strategy_Capability(TestCapability01, "Test Capability")
|
||||
Business_Product(TestProduct01, "Test Product")
|
||||
Application_Service(TestService01, "Test Service")
|
||||
Technology_Device(TestDevice01, "Test Device")
|
||||
|
||||
Rel_Composition(TestCapability01, TestProduct01, "C-P")
|
||||
Rel_Composition_Down(TestProduct01, TestService01, "P-S")
|
||||
Rel_Composition_Left(TestService01, TestDevice01, "S-D")
|
||||
Rel_Composition_Up(TestDevice01, TestCapability01, "D-C")
|
||||
}
|
||||
|
||||
Lay_D(Service01, Example01)
|
||||
|
||||
Group(Example02, "Group Type 02"){
|
||||
Motivation_Stakeholder(StakeholderElement, "Stakeholder Description")
|
||||
Business_Service(BService, "Business Service")
|
||||
}
|
||||
|
||||
Motivation_Requirement(ReqPayrollStandard, "Do Payroll with a standard system")
|
||||
Motivation_Requirement(ReqBudgetPlanning, "Do budget planning within the ERP system")
|
||||
|
||||
Application_Service(ASPayroll,"Payroll Service")
|
||||
Application_Service(ASBudgetPlanning,"Budget Planning Service")
|
||||
Application_Component(ACSAPFinanceAccRec, "SAP Finance - Accounts Recievables")
|
||||
Application_Component(ACSAPHR, "SAP Human Resources")
|
||||
Application_Component(ACSAPFin, "SAP Finance")
|
||||
Application_Component(ACSAP,"SAP")
|
||||
|
||||
Rel_Realization_Up(ASPayroll, ReqPayrollStandard)
|
||||
Rel_Realization_Up(ASBudgetPlanning, ReqBudgetPlanning)
|
||||
Rel_Realization_Up(ACSAPFinanceAccRec, ASBudgetPlanning)
|
||||
Rel_Realization_Up(ACSAPHR, ASPayroll)
|
||||
|
||||
Rel_Composition_Up(ACSAPFin, ACSAPFinanceAccRec)
|
||||
Rel_Composition_Up(ACSAP, ACSAPHR)
|
||||
Rel_Composition_Up(ACSAP, ACSAPFin)
|
||||
@enduml
|
||||
@@ -1,49 +0,0 @@
|
||||
@startuml
|
||||
' see: https://github.com/RicardoNiepel/C4-PlantUML
|
||||
'!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Container.puml
|
||||
!include <c4/C4_Container.puml>
|
||||
|
||||
LAYOUT_TOP_DOWN
|
||||
' LAYOUT_WITH_LEGEND
|
||||
|
||||
Person_Ext(anonymous_user, "Anonymous User")
|
||||
Person(aggregated_user, "Aggregated User")
|
||||
Person(administration_user, "Administration User")
|
||||
|
||||
System_Boundary(c1, "techtribes.js"){
|
||||
|
||||
Container(web_app, "Web Application", "Java, Spring MVC, Tomcat 7.x", "Allows users to view people, tribes, content, events, jobs, etc. from the local tech, digital and IT sector")
|
||||
|
||||
ContainerDb(rel_db, "Relational Database", "MySQL 5.5.x", "Stores people, tribes, tribe membership, talks, events, jobs, badges, GitHub repos, etc.")
|
||||
|
||||
Container(filesystem, "File System", "FAT32", "Stores search indexes")
|
||||
|
||||
ContainerDb(nosql, "NoSQL Data Store", "MongoDB 2.2.x", "Stores from RSS/Atom feeds (blog posts) and tweets")
|
||||
|
||||
Container(updater, "Updater", "Java 7 Console App", "Updates profiles, tweets, GitHub repos and content on a scheduled basis")
|
||||
}
|
||||
|
||||
System_Ext(twitter, "Twitter")
|
||||
System_Ext(github, "GitHub")
|
||||
System_Ext(blogs, "Blogs")
|
||||
|
||||
|
||||
Rel(anonymous_user, web_app, "Uses", "HTTPS")
|
||||
Rel(aggregated_user, web_app, "Uses", "HTTPS")
|
||||
Rel(administration_user, web_app, "Uses", "HTTPS")
|
||||
|
||||
Rel(web_app, rel_db, "Reads from and writes to", "SQL/JDBC, post 3306")
|
||||
Rel(web_app, filesystem, "Reads from")
|
||||
Rel(web_app, nosql, "Reads from", "MongoDB wire protocol, port 27017")
|
||||
|
||||
Rel_U(updater, rel_db, "Reads from and writes data to", "SQL/JDBC, post 3306")
|
||||
Rel_U(updater, filesystem, "Writes to")
|
||||
Rel_U(updater, nosql, "Reads from and writes to", "MongoDB wire protocol, port 27017")
|
||||
|
||||
Rel(updater, twitter, "Gets profile information and tweets from", "HTTPS")
|
||||
Rel(updater, github, "Gets information about public code repositories from", "HTTPS")
|
||||
Rel(updater, blogs, "Gets content using RSS and Atom feeds from", "HTTP")
|
||||
|
||||
Lay_R(rel_db, filesystem)
|
||||
|
||||
@enduml
|
||||
@@ -1,104 +0,0 @@
|
||||
@startuml
|
||||
' see: https://github.com/awslabs/aws-icons-for-plantuml
|
||||
!define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/master/dist
|
||||
!includeurl AWSPuml/AWSCommon.puml
|
||||
!includeurl AWSPuml/EndUserComputing/all.puml
|
||||
!includeurl AWSPuml/Storage/SimpleStorageServiceS3.puml
|
||||
|
||||
' see: https://github.com/aheil/EIP-PlantUML
|
||||
!includeurl https://raw.githubusercontent.com/aheil/EIP-PlantUML/main/dist/EIP-PlantUML.puml
|
||||
|
||||
' see: https://github.com/Roemer/plantuml-office
|
||||
!define ICONURL https://raw.githubusercontent.com/Roemer/plantuml-office/master/office2014
|
||||
!includeurl ICONURL/Servers/database_server.puml
|
||||
!includeurl ICONURL/Servers/application_server.puml
|
||||
!includeurl ICONURL/Concepts/firewall_orange.puml
|
||||
!includeurl ICONURL/Clouds/cloud_disaster_red.puml
|
||||
|
||||
' https://github.com/tupadr3/plantuml-icon-font-sprites
|
||||
!define ICONURL https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/v2.1.0
|
||||
!includeurl ICONURL/common.puml
|
||||
!includeurl ICONURL/common.puml
|
||||
!includeurl ICONURL/devicons/mysql.puml
|
||||
!includeurl ICONURL/font-awesome/database.puml
|
||||
!includeurl ICONURL/font-awesome-5/database.puml
|
||||
|
||||
' https://github.com/rabelenda/cicon-plantuml-sprites
|
||||
!define SPRITESURL https://raw.githubusercontent.com/rabelenda/cicon-plantuml-sprites/v1.0/sprites
|
||||
!includeurl SPRITESURL/tomcat.puml
|
||||
!includeurl SPRITESURL/kafka.puml
|
||||
!includeurl SPRITESURL/java.puml
|
||||
!includeurl SPRITESURL/cassandra.puml
|
||||
|
||||
' https://github.com/RicardoNiepel/Azure-PlantUML
|
||||
!define AzurePuml https://raw.githubusercontent.com/RicardoNiepel/Azure-PlantUML/release/2-1/dist
|
||||
!includeurl AzurePuml/AzureCommon.puml
|
||||
!includeurl AzurePuml/Databases/all.puml
|
||||
!includeurl AzurePuml/Compute/AzureFunction.puml
|
||||
|
||||
' Remove shadows
|
||||
skinparam shadowing true
|
||||
|
||||
actor "Person" as personAlias1
|
||||
AzureFunction(functionAlias, "Label", "Technology", "Optional Description")
|
||||
AzureCosmosDb(cosmosDbAlias, "Label", "Technology", "Optional Description")
|
||||
|
||||
personAlias1 --> functionAlias
|
||||
functionAlias --> cosmosDbAlias
|
||||
|
||||
rectangle "<$tomcat>\nwebapp" as webapp
|
||||
queue "<$kafka>" as kafka
|
||||
rectangle "<$java>\ndaemon" as daemon
|
||||
database "<$cassandra>" as cassandra
|
||||
|
||||
webapp -> kafka
|
||||
kafka -> daemon
|
||||
daemon --> cassandra
|
||||
|
||||
DEV_MYSQL(db)
|
||||
DEV_MYSQL(db4,label of db4,database,red) #DeepSkyBlue
|
||||
|
||||
MsgChannel(channel1, "Channel 1")
|
||||
MsgChannel(channel2, "Channel 2")
|
||||
Message(msg, "Message")
|
||||
|
||||
Send(channel1, msg)
|
||||
Send(msg, channel2)
|
||||
|
||||
rectangle System1
|
||||
rectangle System2
|
||||
rectangle System3
|
||||
|
||||
Message(source)
|
||||
Message(target)
|
||||
|
||||
ControlBus("cb")
|
||||
|
||||
Send(source, System1)
|
||||
Send(System1, System2)
|
||||
Send(System2, System3)
|
||||
Send(System3, target)
|
||||
|
||||
System1 <--> cb
|
||||
System2 <--> cb
|
||||
System3 <--> cb
|
||||
|
||||
SimpleStorageServiceS3(storageAlias, "Label", "Technology", "Optional Description")
|
||||
|
||||
actor User
|
||||
[Third party application] as ThirdPartyApp
|
||||
|
||||
package "Spring Boot Application" {
|
||||
rectangle Controllers <<Spring REST controllers>>
|
||||
rectangle DataStoreService <<Spring service>>
|
||||
rectangle Repository <<Spring repository>>
|
||||
}
|
||||
|
||||
User --> Controllers
|
||||
ThirdPartyApp --> Controllers
|
||||
storageAlias --> Controllers
|
||||
|
||||
Controllers --> DataStoreService
|
||||
DataStoreService --> Repository
|
||||
|
||||
@enduml
|
||||
@@ -1,3 +0,0 @@
|
||||
@startuml
|
||||
listopeniconic
|
||||
@enduml
|
||||
@@ -1,27 +0,0 @@
|
||||
@startuml
|
||||
!includeurl https://raw.githubusercontent.com/inthepocket/plantuml-styles/master/styles.plantuml!0
|
||||
|
||||
!include <logos/flask>
|
||||
!include <logos/kafka>
|
||||
!include <logos/kotlin>
|
||||
!include <logos/cassandra>
|
||||
|
||||
title Gil Barbara's logos example
|
||||
|
||||
' skinparam monochrome true
|
||||
|
||||
rectangle "<$flask>\nwebapp" as webapp
|
||||
queue "<$kafka>" as kafka
|
||||
rectangle "<$kotlin>\ndaemon" as daemon
|
||||
database "<$cassandra>" as cassandra
|
||||
|
||||
webapp -> kafka
|
||||
kafka -> daemon
|
||||
daemon --> cassandra
|
||||
|
||||
database "Database"
|
||||
package "Package"
|
||||
node "ParentNode" {
|
||||
component "Subcomponent"
|
||||
}
|
||||
@enduml
|
||||
@@ -1,41 +0,0 @@
|
||||
@startmindmap
|
||||
!includeurl https://cdn.jsdelivr.net/gh/HSLdevcom/hsl-plantuml-theme/hsl-theme.iuml
|
||||
|
||||
title Crosscutting Concepts
|
||||
|
||||
+ Crosscutting Concepts
|
||||
++ Under the hood
|
||||
+++ Persistence
|
||||
+++ Process Control
|
||||
+++ Transaction handling
|
||||
+++ Session handling
|
||||
+++ Communication and Integration
|
||||
+++ Exception and error handling
|
||||
+++ Parallelization / Threading
|
||||
+++ Plausibility checks and validation
|
||||
+++ Business Rules
|
||||
+++ Batch
|
||||
+++ Reporting
|
||||
++ Operation Concepts
|
||||
+++ Administration
|
||||
+++ Management
|
||||
+++ Disaster-Recovery
|
||||
+++ Skalierung
|
||||
+++ Clusterring
|
||||
+++ Monitoring, Logging, Protocolling
|
||||
+++ High Availability
|
||||
-- Domain Concepts
|
||||
-- Architecture and Design Patterns
|
||||
-- User Experience (UX)
|
||||
--- User Interface
|
||||
--- Ergonomics
|
||||
--- Internationalization
|
||||
-- Security and Safety
|
||||
--- Security
|
||||
--- Safety
|
||||
-- Development Concepts
|
||||
--- Build, Test, Deploy
|
||||
--- Code generation
|
||||
--- Migration
|
||||
--- Configurability
|
||||
@endmindmap
|
||||
@@ -1,35 +0,0 @@
|
||||
@startuml
|
||||
'!includeurl https://cdn.jsdelivr.net/gh/HSLdevcom/hsl-plantuml-theme/hsl-theme.iuml
|
||||
'!define LIGHTBLUE
|
||||
'!includeurl https://raw.githubusercontent.com/Drakemor/RedDress-PlantUML/master/style.puml
|
||||
|
||||
'!includeurl https://github.com/rbkmoney/plantuml-toolset/raw/master/skin.iwsd
|
||||
'!includeurl https://raw.githubusercontent.com/inthepocket/plantuml-styles/master/styles.plantuml!0
|
||||
|
||||
!includeurl https://github.com/rbkmoney/plantuml-toolset/raw/master/super-serious-skin.iwsd
|
||||
|
||||
skinparam BackgroundColor #ffffff
|
||||
|
||||
title Publish(er) Jobs Workers (Successful Block Copy)
|
||||
|
||||
hide footbox
|
||||
|
||||
Alice -> Bob: Authentication Request
|
||||
Bob --> Alice: Authentication Response
|
||||
|
||||
Alice -> Bob: Another authentication Request
|
||||
Alice <-- Bob: Another authentication Response
|
||||
|
||||
Alice -> Bob: Authentication Request
|
||||
...
|
||||
Bob --> Alice: Authentication Response
|
||||
activate Alice
|
||||
note left of Alice
|
||||
Drink that potion!
|
||||
end note
|
||||
deactivate Alice
|
||||
activate Bob
|
||||
... 5 minutes later ...
|
||||
Bob --> Alice: Bye!
|
||||
deactivate Bob
|
||||
@enduml
|
||||
@@ -1,3 +0,0 @@
|
||||
@startuml
|
||||
listsprites
|
||||
@enduml
|
||||
@@ -1,3 +0,0 @@
|
||||
@startuml
|
||||
testdot
|
||||
@enduml
|
||||
@@ -1,25 +0,0 @@
|
||||
:doctitle: Fineract Documentation
|
||||
|
||||
include::config.adoc[]
|
||||
|
||||
= Fineract Documentation
|
||||
|
||||
IMPORTANT: @vidakovic migrate old documentation!
|
||||
|
||||
.Amazon
|
||||
[plantuml,amazon,svg]
|
||||
----
|
||||
include::diagrams/samples/amazon.puml[]
|
||||
----
|
||||
|
||||
.C4 Diagram
|
||||
[plantuml,c4,svg]
|
||||
----
|
||||
include::diagrams/samples/c4.puml[]
|
||||
----
|
||||
|
||||
.Mindmap
|
||||
[plantuml,mindmap,svg]
|
||||
----
|
||||
include::diagrams/samples/mindmap.puml[]
|
||||
----
|
||||
Reference in New Issue
Block a user