From 1602341ca2a37f490db685a88fe24600c0945472 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 23 Apr 2022 10:12:28 +0200 Subject: [PATCH] update --- ...ndividual Contributor License Agreement.md | 8 +- Processes/Development.md | 8 +- Processes/Development_Flowchart.md | 2 + Project/PROJECT.md | 155 ++++++++++-------- Project/Pilot1/Costs.md | 66 ++++++++ Project/Pilot1/Timeline.md | 72 ++++++++ 6 files changed, 237 insertions(+), 74 deletions(-) create mode 100644 Processes/Development_Flowchart.md create mode 100644 Project/Pilot1/Costs.md create mode 100644 Project/Pilot1/Timeline.md diff --git a/Legal/Individual Contributor License Agreement.md b/Legal/Individual Contributor License Agreement.md index 019045f..6d78e28 100644 --- a/Legal/Individual Contributor License Agreement.md +++ b/Legal/Individual Contributor License Agreement.md @@ -1,4 +1,4 @@ -# Individual Contributor License Agreement ("CLA") 1.0 +# Individual Contributor License Agreement ("CLA") Thank you for your interest in Karaka-Management (the "Company"). In order to clarify the intellectual property license granted with Contributions from any person or entity, the Company must provide a Contributor License Agreement ("CLA") on file that has been made available to each Contributor. This license is for your protection as a Contributor as well as the protection of the Company and its users; it does not change your rights to use your own Contributions for any other purpose. @@ -46,4 +46,8 @@ This Agreement shall be governed exclusively by German law. The courts of Hessen ## Entire Agreement -This agreement constitutes the entire agreement and supersedes all prior or contemporaneous oral or written agreements concerning such Contribution. This agreement may only be changed by mutual agreement of authorized representatives of the parties in writing. You agree to notify the Company of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect. \ No newline at end of file +This agreement constitutes the entire agreement and supersedes all prior or contemporaneous oral or written agreements concerning such Contribution. This agreement may only be changed by mutual agreement of authorized representatives of the parties in writing. You agree to notify the Company of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect. + + + +2022.01.01 - Version 1.0 \ No newline at end of file diff --git a/Processes/Development.md b/Processes/Development.md index 41f989a..a3ad309 100644 --- a/Processes/Development.md +++ b/Processes/Development.md @@ -8,6 +8,12 @@ The setup and configuration of the development environment is in the hands of ev Every organization member and contributor to the organization must follow the [code of conduct](../Policies & Guidelines/Code of conduct.md). +## Becoming a contributor + +For public repositories you can immediately start by creating forks and pull requests. For private repositories which are necessary to setup the complete developer environment, feel free to request access. Please not that we may not immediately give you access to private repositories and instead will give you smaller tasks regarding public repositories. Please contact spl1nes.com@googlemail.com for more details. + +For all contributions our [Contributor License Agreement ("CLA")](https://github.com/Karaka-Management/Organization-Guide/blob/develop/legal/individual contributor license agreement.md) comes into effect. + ## Code changes ### Topics / Tasks / Todos @@ -54,7 +60,7 @@ Additional inspections which are run but might be ignored during the review depe ### Demo -Some code changes may also require changes or extensions in the demo setup scripts. The demo setup script try to simulate a real world use case by generating and modifying mostly random data. This is also a good way to setup and “manually” test the code changes in a larger picture. The demo setup script can be found in the [demoSetup](https://github.com/Karaka-Management/demoSetup) repository. The demo setup script takes a long time due to the large amount of user input simulated data which is generated. Therefore it is recommended to run this only sporadically. +Some code changes may also require changes or extensions in the demo setup scripts. The demo setup script try to simulate a real world use case by generating and modifying mostly random data. This is also a good way to setup and “manually” test the code changes in a larger picture. The demo setup script can be found in the [demoSetup](https://github.com/Karaka-Management/demoSetup) repository. The demo setup script takes a long time due to the large amount of user input simulated data which is generated. Therefore it is recommended to run this only sporadically. ### Code review diff --git a/Processes/Development_Flowchart.md b/Processes/Development_Flowchart.md new file mode 100644 index 0000000..56deba4 --- /dev/null +++ b/Processes/Development_Flowchart.md @@ -0,0 +1,2 @@ +# Development Flowchart + diff --git a/Project/PROJECT.md b/Project/PROJECT.md index aa48186..39b5e4f 100644 --- a/Project/PROJECT.md +++ b/Project/PROJECT.md @@ -3,14 +3,14 @@ - [Summary](#summary) - [Most recent changelog](#most-recent-changelog) - [Milestones](#milestones) -- [Milestone tasks](#milestone-tasks) +- [Key tasks](#key-tasks) - [Todos](#todos) - [Bugs](#bugs) - [Drafts, concepts & ideas](#drafts-concepts-ideas) ## Summary -Last update of this file: 2022.04.03 +Last update of this file: 2022.04.23 ## Most recent changelog @@ -43,75 +43,7 @@ Last update of this file: 2022.04.03 * Adding existing events to dynamically added DOM elements becomes a real problem. * Solution: Implement event bubbling -## Next steps - -Continue with milestone implementation. - -## Milestones - -Based on the pilot candidate with whom the functionality will be implemented. - -* The current costs are the annual value for the pilot candidate based on actual costs but subjectively split into more detailed cost positions (the invoices from the suppliers are not always detailed enough to differentiate between the different functions/modules). -* The future costs are costs that currently don't exist but are expected to come up in the future if the pilot candidate intends to implement **some** of the current software needs. -* The new value is an estimation of how much the newly implemented software (Karaka) will subjectively provide compared to current/future solutions. These are **NOT** the costs for the pilot candidate or cost savings. The costs for this will be discussed afterwards. - -| Deadline | Done | Milestone | Current Costs | Future Costs | New Value | -| -------- | ---- | ------------------------------------------------------ | -------------- | -------------- | -------------- | -| | | Replace ticket system from Z* | 7,200 EUR | | 8,000 EUR | -| | | Replace document/contract management from CRM | 3,000 EUR | | 5,000 EUR | -| | | Implement invoice management process | 0 EUR | 5,000 EUR | 5,000 EUR | -| | | Replace QM from CRM | 700 EUR | | 1,500 EUR | -| | | Replace workflows from CRM | 2,000 EUR | | 3,000 EUR | -| | | Move sales reps from CRM | 5,400 EUR | | 6,000 EUR | -| | | Replace Marketing events, seminars, shop data from CRM | 1,500 EUR | | 2,000 EUR | -| | | Sales analysis (replace D* from G*) | 1,000 EUR | | 3,000 EUR | -| | | Digitalizing human resource Human Resource Management | 0 EUR | | 500 EUR | -| | | Replace billing from G* | 15,000 EUR | | 20,000 EUR | -| | | Replace stock from G* | 7,500 EUR | | 8,000 EUR | -| | | Replace inventory from G* | 500 EUR | | 1,000 EUR | -| | | Replace manufacturing from G* | 500 EUR | | 1,000 EUR | -| | | R&D + Quality control | 0 EUR | 10,000 EUR | 10,000 EUR | -| | | Replace accounting from G* | 10,000 EUR | | 12,000 EUR | -| | | Replace asset management from G* | 500 EUR | | 500 EUR | -| | | Replace reporting from L* | 4,300 EUR | | 5,000 EUR | -| | | Replace time recording | 1,500 EUR | | 2,000 EUR | -| | | **Total** | **60,100 EUR** | **15,000 EUR** | **91,500 EUR** | - -### Cost basis - -The estimated annual costs in the milestones above are based on the total annual costs from the software from the pilot candidate. - -| Type | License | Customization | Total | -| -------------- | -------------- | -------------- | -------------- | -| Z* | 7,200 EUR | | 7,200 EUR | -| G* | 26,600 EUR | 8,400 EUR | 35,000 EUR | -| L* | 4,300 EUR | | 4,300 EUR | -| CRM | 2,900 EUR | 9,200 EUR | 12,100 EUR | -| Time recording | 1,500 EUR | | 1,500 EUR | -| **Total** | **42,500 EUR** | **17,600 EUR** | **60,100 EUR** | - -*Website costs are not included, they can be estimated at another 30,000 EUR per year* - -### Software vendor comparison - -The following overview tries to compare competitive software alternatives as fairly as possible. However, in many cases additional costs for maintenance, support and **especially** customizations are not known. - -| Type | Current situation* | Sage | Salesforce | Datev | Lexware | OMS** | -| ------------- | ---------------------- | ---- | -------------- | --------- | -------------- | -------------- | -| Ticket system | 7,200 EUR | | | | | 5,000 EUR | -| CRM | 2,900 EUR + 9,200 EUR | | 11,250 EUR + ? | | | 10,000 EUR | -| ERP | 22,000 EUR + 8,000 EUR | | | | 17,000 EUR + ? | 25,000 EUR | -| Accounting | 4,600 EUR + 400 EUR | | | 1,260 EUR | 5,000 EUR + ? | 5,000 EUR | -| Reporting | 4,300 EUR | | | | | 5,000 EUR | -| **Total** | **58,600 EUR** | | | | | **50,000 EUR** | - -*ERP calculation based on 50 licenses, accounting based on 10 licenses, analysis tool based on 10 licenses, CRM based on 75 licenses* - -\* Excluding future costs for additional software/features - -\*\* Incl. features mentioned in new value and basic support & customizations (e.g. installation, software training, invoice layout) - -### Milestone tasks +## Key tasks | Priority | Category | Task | | ---------- | ---------------------------------------- | ------------------------------------------------------------ | @@ -338,6 +270,7 @@ Todos/tasks which are not important enough to be part of the milestones (or don' | medium | Editor | Create immediate text preview similar to a rich text editor or Typora. | | medium | Editor | Add inline charts (e.g. [Mermaid](https://github.com/mermaid-js/mermaid) and [Toast UI Chart](https://github.com/nhn/tui.chart)) | | medium | Editor | Add math formulas (e.g. [Katex](https://katex.org/)) | +| medium | Editor | Add emojis | | medium | Admin | Create a view where it's possible to create/activate, change and delete/deactivate hooks for events. | | medium | EventManagement | Use Cli application for async event handling, alternatively web requests via curl, alternatively at runtime of the main process. This should depend on the configuration of the application. | | low | Registration | Allow users to register by themselves (if activated in the backend) | @@ -610,3 +543,83 @@ Software: 1. Tesseract + OpenCV + above mentioned steps 2. Some Api (e.g. google vision ai, amazon textract, amazon recognition) + +### Workflow + +* Listen to multiple event triggers (a state might get triggered from different triggers) +* Every state needs to load the workflow instance globally for that state +* A workflow must have multiple events such as + * events must have a name/id + * events can have a description + * if (with true and false branches and with simple && and || connections) + * Comparisons: + * equals + * not equals + * exists + * doesn't exist + * greater than + * lesser than + * greater or equals than + * lesser or equals than + * contains + * doesn't contain + * in between (inclusive) + * Connections + * Only simple && and || + * No complex sub conditions e.g. (a && b) || (b && (c || d)) + * Function + * Call + * function from module + * function from static script + * function from workflow + * simulate api call (internally populate request/response) + * Define variable names in order of function parameters + * Define response variable name + * Data definition (important for naming and defining values for follow up steps) + * Fixed values + * Dynamic re-assigning/copying + * take old variable and re-name it + * allow array path e.g. `varname/key1/key2 => newvarname` + * the same variable can be copied to many different new variable names + * Event trigger + * similar to function but trigger event + * Routing + * similar to function but run routing into dispatcher + * Rest request + * similar to function but using rest + * Execute script assigned to workflow template + * This way workflow could be completely defined in a custom script if it is very complicated + * Response message population + * Create workflow diagram (see example below) + +```mermaid +flowchart LR + subgraph A + A_TRIGGER[State1: Event Triggers]-->IF{if} + IF-->|TRUE|IF_TRUE1[Run] + IF_TRUE1-->RUN1[Collect result] + RUN1-->NEW_VAR[Assign data] + NEW_VAR-->TRIGGER2[Execute Event] + NEW_VAR-->MESSAGE[Populate Message] + IF-->|TRUE|RUN2[Run] + RUN2-->OTHER1[...] + IF-->|FALSE|ELSEIF{if} + ELSEIF-->|TRUE|ELSE_TRUE[Run] + ELSE_TRUE-->OTHER2[...] + ELSEIF-->|FALSE|FALSE[Error] + end + + A-->|State Change|B + A-->|State Change|C + + subgraph B + B_TRIGGER[State2: Event Triggers]-->B_IF{...} + end + + B-->|State Change|C + + subgraph C + C_TRIGGER[State3: Event Triggers]-->C_IF{...} + end +``` + diff --git a/Project/Pilot1/Costs.md b/Project/Pilot1/Costs.md new file mode 100644 index 0000000..d7e3f96 --- /dev/null +++ b/Project/Pilot1/Costs.md @@ -0,0 +1,66 @@ +# Milestones + +## Software parts + +Based on the pilot candidate with whom the functionality will be implemented. + +* The current costs are the annual value for the pilot candidate based on actual costs but subjectively split into more detailed cost positions (the invoices from the suppliers are not always detailed enough to differentiate between the different functions/modules). +* The future costs are costs that currently don't exist but are expected to come up in the future if the pilot candidate intends to implement **some** of the current software needs. +* The new value is an estimation of how much the newly implemented software (Karaka) will subjectively provide compared to current/future solutions. These are **NOT** the costs for the pilot candidate or cost savings. The costs for this will be discussed afterwards. + +| Software parts | Current Costs | Future Costs | New Value | +| ------------------------------------------------------ | -------------- | -------------- | -------------- | +| Replace ticket system from Z* | 7,200 EUR | | 8,000 EUR | +| Replace document/contract management from CRM | 3,000 EUR | | 5,000 EUR | +| Implement invoice management process | 0 EUR | 5,000 EUR | 5,000 EUR | +| Replace QM from CRM | 700 EUR | | 1,500 EUR | +| Replace workflows from CRM | 2,000 EUR | | 3,000 EUR | +| Move sales reps from CRM | 5,400 EUR | | 6,000 EUR | +| Replace Marketing events, seminars, shop data from CRM | 1,500 EUR | | 2,000 EUR | +| Sales analysis (replace D* from G*) | 1,000 EUR | | 3,000 EUR | +| Digitalizing human resource Human Resource Management | 0 EUR | | 500 EUR | +| Replace billing from G* | 15,000 EUR | | 20,000 EUR | +| Replace stock from G* | 7,500 EUR | | 8,000 EUR | +| Replace inventory from G* | 500 EUR | | 1,000 EUR | +| Replace manufacturing from G* | 500 EUR | | 1,000 EUR | +| R&D + Quality control | 0 EUR | 10,000 EUR | 10,000 EUR | +| Replace accounting from G* | 10,000 EUR | | 12,000 EUR | +| Replace asset management from G* | 500 EUR | | 500 EUR | +| Replace reporting from L* | 4,300 EUR | | 5,000 EUR | +| Replace time recording | 1,500 EUR | | 2,000 EUR | +| **Total** | **60,100 EUR** | **15,000 EUR** | **91,500 EUR** | + +## Cost basis + +The estimated annual costs in the milestones above are based on the total annual costs from the software from the pilot candidate. + +| Type | License | Customization | Total | +| -------------- | -------------- | -------------- | -------------- | +| Z* | 7,200 EUR | | 7,200 EUR | +| G* | 26,600 EUR | 8,400 EUR | 35,000 EUR | +| L* | 4,300 EUR | | 4,300 EUR | +| CRM | 2,900 EUR | 9,200 EUR | 12,100 EUR | +| Time recording | 1,500 EUR | | 1,500 EUR | +| **Total** | **42,500 EUR** | **17,600 EUR** | **60,100 EUR** | + +*Website costs are not included, they can be estimated at another 30,000 EUR per year* + +## Software vendor comparison + +The following overview tries to compare competitive software alternatives as fairly as possible. However, in many cases additional costs for maintenance, support and **especially** customizations are not known. + +| Type | Current situation* | Sage | Salesforce | Datev | Lexware | OMS** | +| ------------- | ---------------------- | ---- | -------------- | --------- | -------------- | -------------- | +| Ticket system | 7,200 EUR | | | | | 5,000 EUR | +| CRM | 2,900 EUR + 9,200 EUR | | 11,250 EUR + ? | | | 10,000 EUR | +| ERP | 22,000 EUR + 8,000 EUR | | | | 17,000 EUR + ? | 25,000 EUR | +| Accounting | 4,600 EUR + 400 EUR | | | 1,260 EUR | 5,000 EUR + ? | 5,000 EUR | +| Reporting | 4,300 EUR | | | | | 5,000 EUR | +| **Total** | **58,600 EUR** | | | | | **50,000 EUR** | + +*ERP calculation based on 50 licenses, accounting based on 10 licenses, analysis tool based on 10 licenses, CRM based on 75 licenses* + +\* Excluding future costs for additional software/features + +\*\* Incl. features mentioned in new value and basic support & customizations (e.g. installation, software training, invoice layout) + diff --git a/Project/Pilot1/Timeline.md b/Project/Pilot1/Timeline.md new file mode 100644 index 0000000..75591f1 --- /dev/null +++ b/Project/Pilot1/Timeline.md @@ -0,0 +1,72 @@ +# Timeline + +```mermaid +gantt + title CRM + dateFormat YYYY-MM-DD + excludes weekends + section Kick-Off + Planning :crit, a, 2022-09-01, 5d + section UI + Inline form C/U/C :1a1, after a, 30d + Pull A/U/R/O :1a2, after a, 30d + Push A/U/R/O :1a3, after a, 30d + Data filter (local/remote) :1b1, after 1a1, 30d + Data actions (bulk) :1b2, after 1a1, 30d + Data order (local/remote) :1b3, after 1a1, 30d + Data export :1b4, after 1a1, 30d + Tag selector :1c1, after 1b4, 10d + Drop down :1c2, after 1b4, 10d + Popup :1c3, after 1b4, 10d + Custom tpl :1d1, after 1b1, 15d + section Review1 + Demo :crit, 0a1, 2022-11-01, 1d + Planning :crit, 0a2, 2022-11-01, 3d + Fixes :crit, 0a3, 2022-11-01, 5d + section Custom Importer + Client importer :2a1, 2022-10-15, 15d + Supplier importer :2b1, 2022-10-15, 15d + Item importer :2c1, 2022-10-15, 15d + Bill importer (incl files) :2d1, 2022-10-15, 15d + CRM docs/contracts :2e1, after 2d1, 15d + CRM events :2f1, after 2e1, 15d + CRM promotions :2f2, after 2e1, 15d + CRM trade fairs :2f3, after 2e1, 15d + CRM customer/supplier data :2g1, after 2f3, 10d + section Vacation1 + Vacation :crit, v1, after 2g1, 10d + section Review2 + Cleanup :crit, 0b1, after v1, 5d + Demo :crit, 0b2, after 0b1, 1d + Planning :crit, 0b3, after 0b2, 3d + Fixes :crit, 0b4, after 0b3, 5d + section UI Workflows + New articles :3a1, after 0b4, 10d + Q-report :3b1, after 0b4, 10d + section Functions + Events :4a1, after 3b1, 15d + Promos :4b1, after 3b1, 15d + Trade fairs :4c1, after 3b1, 15d + Contracts :4d1, after 4c1, 15d + Documents :4e1, after 4c1, 15d + Travel report :4f1, after 4e1, 10d + Customer analysis :4g1, after 4e1, 15d + News :4h1, after 4g1, 5d + section Review3 + Cleanup :crit, 0c1, after 4h1, 10d + Demo :crit, 0c2, after 0c1, 1d + Planning :crit, 0c3, after 0c2, 3d + Fixes :crit, 0c4, after 0c3, 15d + section Exchange + DB exchanger (e.g. ERP) :5a1, after 0c4, 15d + File exchanger :5b1, after 0c4, 15d + section Vacation2 + Vacation :crit, v2, after 5b1, 10d + section Other + Misc. :6a1, after v2, 15d + section Vacation + Vacation :crit, v3, after 6a1, 10d + section Live + Going live :milestone, 2023-08-31 +``` +