Skip to content

Commit ccb2ac2

Browse files
authored
Merge pull request #3 from SONAIII/main
Updated Docs and Repository Structure
2 parents bd53a4f + 7ab4c56 commit ccb2ac2

File tree

22 files changed

+474
-407
lines changed

22 files changed

+474
-407
lines changed

.gitmodules

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -10,48 +10,10 @@
1010
[submodule "infrastructure/mail"]
1111
path = infrastructure/mail
1212
url = https://github.com/TroodInc/trood-mail
13-
[submodule "front-end/trood-core-front"]
14-
path = front-end/trood-core-front
15-
url = https://github.com/TroodInc/trood-core-front
16-
[submodule "data-analysis/reporting"]
17-
path = data-analysis/reporting
18-
url = https://github.com/TroodInc/trood-reporting
19-
[submodule "front-end/trood-restify"]
20-
path = front-end/trood-restify
21-
url = https://github.com/TroodInc/trood-restify
2213
[submodule "infrastructure/fileservice"]
2314
path = infrastructure/fileservice
2415
url = https://github.com/TroodInc/trood-fileservice
25-
[submodule "infrastructure/search"]
26-
path = infrastructure/search
27-
url = https://github.com/TroodInc/trood-search
28-
[submodule "infrastructure/scheduler"]
29-
path = infrastructure/scheduler
30-
url = https://github.com/TroodInc/trood-scheduler
31-
[submodule "events-processes/events"]
32-
path = events-processes/events
33-
url = https://github.com/TroodInc/trood-events
34-
[submodule "events-processes/n8n"]
35-
path = events-processes/n8n
36-
url = https://github.com/TroodInc/trood-n8n
37-
[submodule "integration/exchange"]
38-
path = integration/exchange
39-
url = https://github.com/TroodInc/trood-exchange
40-
[submodule "infrastructure/journal"]
41-
path = infrastructure/journal
42-
url = https://github.com/TroodInc/trood-journal
43-
[submodule "integration/crossover"]
44-
path = integration/crossover
45-
url = https://github.com/TroodInc/trood-crossover
4616
[submodule "front-end/trood-core-template"]
4717
path = front-end/trood-core-template
4818
url = https://github.com/TroodInc/trood-core-template
49-
[submodule "integration/registry"]
50-
path = integration/registry
51-
url = https://github.com/TroodInc/serviceregistry
52-
[submodule "front-end/react-boilerplate"]
53-
path = front-end/react-boilerplate
54-
url = https://github.com/TroodInc/react-boilerplate
55-
[submodule "business-objects/custodian-client-python"]
56-
path = business-objects/custodian-client-python
57-
url = https://github.com/TroodInc/custodian_client
19+

CONTRIBUTING.md

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
# Contributing to Trood Metarepository
2+
3+
Thank you for contributing to Trood Core!
4+
5+
All of the necessary information can be found in our [code of conduct](https://www.notion.so/trood/Trood-Testament-4a08910e65c04cf39253d0fb8f06ef59) as well as in [GitHub discussions](https://github.com/orgs/TroodInc/discussions).
6+
7+
## Proposing changes
8+
9+
The best way to propose a change is to start a discussion on our GitHub repository.
10+
11+
- First, write a short problem statement, which clearly and briefly describes the problem you want to solve independently from any specific solution. It doesn't need to be long or formal, but it's difficult to consider a solution in absence of a clear understanding of the problem.
12+
13+
- Next, write a short solution proposal. How can the problem (or set of problems) you have stated above be addressed? What are the pros and cons of your approach? Again, keep it brief and informal. This isn't a specification, but rather a starting point for a conversation.
14+
15+
- By effectively engaging with the our team and community early in your process, we're better positioned to give you feedback and understand your pull request once you open it. If the first thing we see from you is a big changeset, we're much less likely to respond to it in a timely manner.
16+
17+
18+
## 🛠 **How to Contribute**
19+
20+
We welcome contributions in the following forms:
21+
22+
1. **Submitting new repositories:** Share tools, libraries, and solutions that fit within our categories.
23+
2. **Improving documentation:** Enhance and refine our documentation for better usability.
24+
3. **Fixing bugs:** Identify and fix issues in existing repositories.
25+
4. **Enhancements:** Propose and implement new features or optimizations.
26+
5. **Code reviews:** Review and provide feedback on submitted pull requests.
27+
28+
---
29+
30+
## 🚀 **Getting Started**
31+
32+
1. **Fork the Repository:** Fork the project to your GitHub account.
33+
2. **Clone Your Fork:**
34+
```bash
35+
git clone https://github.com/your-username/trood-metarepository.git
36+
cd trood-metarepository
37+
```
38+
3. **Set Up the Development Environment:**
39+
40+
4. **Create a Branch:**
41+
```bash
42+
git checkout -b feature/your-feature-name
43+
```
44+
Use the branch naming conventions listed below.
45+
46+
---
47+
48+
## 📝 **Branch Naming Conventions**
49+
50+
Branches should follow this structure:
51+
```
52+
[type_of_change]/[feature_name]
53+
```
54+
**Types of changes:**
55+
- `feature`: New features or enhancements.
56+
- `bug`: Fixes for bugs or issues.
57+
- `fix`: Minor fixes or optimizations.
58+
- `chore`: Maintenance tasks, like refactoring or dependency updates.
59+
60+
**Example:**
61+
```
62+
feature/AI_search
63+
```
64+
65+
---
66+
67+
## 🔄 **Commit Messages**
68+
69+
A good commit message should be concise and descriptive. Format:
70+
```
71+
[type]: [description]
72+
```
73+
**Types:**
74+
- `feat`: For new features.
75+
- `fix`: For bug fixes.
76+
- `docs`: For changes to documentation.
77+
- `refactor`: For code refactoring.
78+
- `test`: For adding or updating tests.
79+
80+
**Example:**
81+
```
82+
feat: Implement AI-powered search functionality
83+
```
84+
85+
---
86+
87+
## 🔍 **Pull Requests**
88+
89+
Before submitting a pull request:
90+
1. Ensure your branch is up to date with the `main` branch:
91+
```bash
92+
git pull origin main
93+
```
94+
2. Run tests and ensure there are no errors.
95+
3. Submit the pull request, linking the related ClickUp task if applicable.
96+
97+
---
98+
99+
## 🔧 **Code Reviews**
100+
101+
We follow these guidelines for code reviews:
102+
- **Constructive Feedback:** Reviewers provide feedback that focuses on the code and not the person.
103+
- **Code Quality:** Ensure code follows the project’s style and standards.
104+
- **Automated Comments:** If a pull request receives **more than 7 comments** or **extends to 3 iterations**, it will be closed and reevaluated.
105+
106+
---
107+
108+
## 📂 **File and Directory Structure**
109+
Ensure you place contributions in the appropriate directory under the relevant modules:
110+
```
111+
/trood/
112+
├── business-objects/
113+
├── processes-and-events/
114+
├── infrastructure-devops/
115+
├── data-analysis/
116+
├── front-end/
117+
├── security/
118+
├── blockchain/
119+
└── human-workflow/
120+
```
121+
122+
---
123+
124+
## ✅ **Contribution Checklist**
125+
Before submitting a contribution, make sure:
126+
- [ ] Code adheres to the project’s coding standards.
127+
- [ ] Documentation is updated where necessary.
128+
- [ ] Code has been tested locally.
129+
- [ ] You’ve followed the naming conventions and branch policies.
130+
131+
---
132+
133+
## 📜 **License**
134+
By contributing, you agree that your contributions will be licensed under the same license as this repository. See [LICENSE](./LICENSE) for details.
135+
136+
---
137+
138+
We appreciate your efforts and contributions! 🎉 Let’s build something great together.

DESCRIPTION.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
## What is it and why is it needed?
2+
3+
Trood Core is a set of microservices that provide various functional blocks for typical business applications. The project is focused on a quick start when creating corporate solutions: CRM systems, internal portals, document management systems, etc. Instead of writing typical blocks from scratch, you get ready-made services:
4+
5+
### [Custodian](docs/custodian.md) (Data structure management and interaction with the database):
6+
- Generation of REST endpoints and database tables (PostgreSQL) from JSON descriptions.
7+
- Migration mechanism (with history and branching).
8+
- Bulk operations (mass addition, updating, deletion).
9+
- Integration with external systems via Webhooks.
10+
11+
### [File Service](docs/file-service.md) (File management and processing):
12+
- Support for metadata, extensions, types, and templates.
13+
- Document templates and on-the-fly file generation.
14+
- Integration with ABAC for file access management.
15+
16+
### [Auth Service](auth-service.md) (Authorization and access management):
17+
- High flexibility in access management thanks to ABAC.
18+
- Easy integration with other systems via REST API.
19+
- Detailed control over users and roles.
20+
- Built-in security mechanisms (multi-factor authentication, tokens).
21+
22+
### [Mail Service](mail-service.md) (Email handling):
23+
- Mailbox management (SMTP/IMAP).
24+
- Sending and receiving emails, attachments.
25+
- Working with folders, email threads, contacts.
26+
27+
Together, these services cover a wide range of application needs: data storage, file handling, email management, and access rights configuration — all without reinventing the wheel or manually writing repetitive code.
28+
29+
## How can this help developers?
30+
31+
### Quick start and reduced routine
32+
- **CRUD out of the box**: Describe objects in JSON — Custodian creates tables and REST endpoints.
33+
- **Bulk operations and search (RQL)**: No need to manually write SQL queries or tweak filter logic.
34+
- **Minimal code duplication**: Quickly define fields and relationships through metadata. Custodian automatically synchronizes the database schema.
35+
36+
### Ready-made mail and file modules
37+
- **Mail Service** simplifies sending/receiving emails, including attachments, folders, and threads. It speeds up typical use cases (mailings, notifications, capturing incoming emails).
38+
- **File Service** solves file storage and document generation from templates. Developers don’t need to write logic for uploading/storing files, etc.
39+
40+
### Flexible authorization (ABAC)
41+
- Fine-tuned access control without manual "if user in role" checks: Auth Service allows setting rules based on user attributes (subject), object attributes (object), and context (context).
42+
- Example: "A manager can only see their orders, while an administrator can see all."
43+
44+
### Scalable microservice architecture
45+
- Each service (Custodian, File, Mail, Auth) has its own Docker container/repository.
46+
- You can scale narrowly, for example, if you need to handle high email load without affecting other blocks.
47+
48+
### Convenient integrations
49+
- REST API in all services — easily integrates with any Frontend framework (React, Vue, Angular) or mobile applications.
50+
- External calls on create/update/delete events (hooks, actions).

0 commit comments

Comments
 (0)