Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Guided Documentation for RC codebase #29623

Draft
wants to merge 66 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
d0a2985
Added Intro to RC
AdityaSingh-02 May 30, 2023
68443ac
Update tours and adding steps
AdityaSingh-02 May 30, 2023
3e897b5
Merge pull request #1 from AdityaSingh-02/Tours
AdityaSingh-02 May 30, 2023
7b2983d
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 May 31, 2023
00949dd
Completed Repo structure
AdityaSingh-02 May 31, 2023
c87fe2d
Update 1---repository-overview.tour
AdityaSingh-02 May 31, 2023
6eed81d
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 1, 2023
beb37ac
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat i…
AdityaSingh-02 Jun 1, 2023
16c4bf5
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 2, 2023
9ad8a00
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat i…
AdityaSingh-02 Jun 2, 2023
6b9bfc6
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 3, 2023
50a66c3
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat i…
AdityaSingh-02 Jun 3, 2023
3568206
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 8, 2023
dd4c8f8
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 18, 2023
b5f054f
Update Tour3
AdityaSingh-02 Jun 18, 2023
8256097
remove conflict
AdityaSingh-02 Jun 18, 2023
6d1fbce
Updated Changes
AdityaSingh-02 Jun 18, 2023
ae39515
Merge pull request #3 from AdityaSingh-02/TourUpdate
AdityaSingh-02 Jun 18, 2023
1b4d9eb
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 22, 2023
c8db21f
Changes in tour
AdityaSingh-02 Jun 22, 2023
1aeb4ff
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 24, 2023
297a70f
Seperate how message is sent
AdityaSingh-02 Jun 24, 2023
8e7a7c4
fix: Take seconds to assess if BH is open/closed (#29558)
KevLehman Jun 22, 2023
3516e3d
fix: livechat translations not loading on refresh (#29607)
MartinSchoeler Jun 22, 2023
a25946b
fix: Adjusted to not show 'removed from' notification on Omnichannel …
aleksandernsilva Jun 22, 2023
4a87f28
chore: Remove old deprecated `GenericTable` in favor of v2 (#29594)
dougfabris Jun 22, 2023
9cfe327
chore: bump fuselage (#29615)
ggazzo Jun 22, 2023
e1ab0da
fix: Show badge for threads direct mentions (#29587)
yash-rajpal Jun 22, 2023
3f22ec2
feat: Implement new password verification flow front (#29322)
rique223 Jun 22, 2023
2b9f19c
ci(lint): Broken ESLint (#29599)
tassoevan Jun 22, 2023
b9d8620
fix(meteor): Message composer keeps recording even though permission …
gabriellsh Jun 22, 2023
508a0f4
fix: hidden custom fields being validated on some cases (#29556)
MartinSchoeler Jun 22, 2023
f964c7d
fix: Show agent email not being passed to model calls (#29455)
KevLehman Jun 23, 2023
f24a610
chore: load dialpad modal lazy (#29629)
ggazzo Jun 23, 2023
8259b94
fix: Events listeners were not being removed when services (local) we…
MarcosSpessatto Jun 23, 2023
78b727d
chore: improve omnichannel tests reliability (#29572)
aleksandernsilva Jun 23, 2023
f337157
refactor: convert routing manager to ts (#29406)
KevLehman Jun 23, 2023
236fd40
fix(meteor): Autotranslate encoding message (#29625)
gabriellsh Jun 23, 2023
95d8438
feat: custom fields component to registration form (#29202)
hugocostadev Jun 23, 2023
2866496
ci: uikit loglevel silent (#29633)
ggazzo Jun 23, 2023
323daf0
chore: `Table` in favor of `GenericTable` (#29628)
dougfabris Jun 24, 2023
7d1e501
feat: `showThreadsInMainChannel` Preference (#29302)
dougfabris Jun 24, 2023
3baa51c
feat: add `tmid` to UiKit interaction block action (#29639)
sampaiodiego Jun 24, 2023
ad72919
Merge branch 'develop' into PRTour1
AdityaSingh-02 Jun 24, 2023
13142bd
Added DbModel tour
AdityaSingh-02 Jun 24, 2023
da975d4
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 27, 2023
5cffdfc
Added how to use DB model pt 1
AdityaSingh-02 Jun 27, 2023
e3f5e21
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jun 29, 2023
f0bca6b
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat i…
AdityaSingh-02 Jun 29, 2023
5020572
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jul 7, 2023
78678e1
Merge branch 'develop' of https://github.com/AdityaSingh-02/Rocket.Ch…
AdityaSingh-02 Jul 7, 2023
e72e953
Refactor: Modified Links
AdityaSingh-02 Jul 7, 2023
7373d53
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jul 10, 2023
cb2980a
Added new-tour
AdityaSingh-02 Jul 10, 2023
de43594
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jul 16, 2023
2c9c344
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jul 21, 2023
7243403
Merge branch 'RocketChat:develop' into develop
AdityaSingh-02 Jul 23, 2023
3fc585a
merge
AdityaSingh-02 Jul 23, 2023
c17a16c
added new tours
AdityaSingh-02 Jul 23, 2023
23b9e4d
Merge branch 'RocketChat:develop' into PRTour1
AdityaSingh-02 Aug 2, 2023
355e031
Merge branch 'RocketChat:develop' into PRTour1
AdityaSingh-02 Aug 7, 2023
0ba3d0f
Merge branch 'RocketChat:develop' into PRTour1
AdityaSingh-02 Aug 9, 2023
07096ef
Merge branch 'RocketChat:develop' into PRTour1
AdityaSingh-02 Aug 13, 2023
d6e0b71
Add tour 9
AdityaSingh-02 Aug 26, 2023
985732a
Final Commit v6.3.2
AdityaSingh-02 Aug 26, 2023
4c54507
Merge branch 'develop' into PRTour1
debdutdeb Oct 15, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .tours/1---repository-overview.tour
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"$schema": "https://aka.ms/codetour-schema",
"title": "1 - Repository-Overview",
"steps": [
{
"file": "package.json",
"description": "### 1. Welcome to the Rocket.Chat Code Tour! This tour aims to provide an overview of the *Rocket.Chat* codebase, its architecture, key features and how things are working. \n\n### 2. The code tour is designed for the Everyone, whether you're a developer looking to contribute, a student learning web development, or simply curious about Rocket.Chat's inner workings.\n\n### 3. We'll explore specific modules, functionalities, or important sections of the codebase in a structured manner, allowing you to understand how Rocket.Chat works.",
"line": 2,
"title": "Welcome"
},
{
"directory": "packages",
"description": "### packages \nThe \"package\" folder in the Rocket Chat project contains sharable code that can be used by different projects within the Rocket Chat ecosystem. It houses reusable modules, libraries, or components that follow a modular approach to code organization. The shared code is managed as a package with its own versioning system, allowing projects to depend on specific versions. The folder may include documentation, examples, tests, and quality assurance processes to ensure reliability and ease of use. By organizing sharable code in this folder, Rocket Chat promotes code reuse, modularity, and collaboration across projects.\n\nYou can also Visit [Here](https://developer.rocket.chat/open-source-projects/server/repository-structure#directory-structure) for structure"
},
{
"directory": "ee",
"description": "### ee (Enterprice Edition) \nThe \"ee\" folder in the Rocket Chat project contains code, features, and functionalities exclusive to the Enterprise Edition of Rocket Chat. It provides additional features tailored for larger organizations, such as advanced security options, compliance features, enhanced administration tools, and integrations with enterprise systems.\n\n**Additional features**: The \"ee\" folder includes code files that implement extra features and functionalities exclusive to the enterprise edition. These features are designed to meet the requirements of enterprise customers, such as advanced security options, compliance features, enhanced administration tools, integrations with enterprise systems, and more."
},
{
"directory": "apps/meteor",
"description": "## apps/meteor \n### The \"apps/meteor\" folder is a significant part of the codebase and contains important code and imports related to the Meteor framework in the Rocket Chat project.\n\n### Back in 2015 RocketChat was built completely on Full stack Meteor Framework, But later on due to limitations and few problems with meteor framework, Hence RocketChat decided to move things and build their own optimised implementations of codes, and slowly started to remove some dependencies of Meteor Framework.\n\n- **Folder structure**: The \"apps/meteor\" folder may have a structured organization, with subfolders representing different aspects of the application. For example:\n - **Client**: This subfolder may contain code specific to the client-side implementation, such as UI components, templates, stylesheets, and client-side libraries.\n - **Server**: This subfolder may contain code that runs on the server-side, handling server operations like database interactions, API endpoints, and server-side functions.\n - **Lib**: This subfolder may contain reusable code and utilities that can be shared between the client and server.\n - **Methods**: This subfolder may contain code for server-side methods, which provide an interface for client-side code to interact with the server and perform operations securely.\n - **Public**: This subfolder may contain publicly accessible files, such as static assets (images, fonts, etc.) that can be served directly to clients.\n - **Private**: This subfolder may contain private files and assets that are only accessible to the server-side code.",
"title": "apps/meteor"
},
{
"directory": "apps/meteor/client",
"description": "## apps/meteor/client \n\n\n### In Rocket Chat, the \"apps/meteor/client\" directory refers to the client-side code that is specific to the Meteor framework within the Rocket Chat application. It contains frontend-related code and resources that are responsible for rendering and handling the user interface on the client side.\n\n#### Since it mostly contains Client-Side code it has an UI-Kit/hooks which is used for styling RocketChat's amazing User interface.\n\n#### We also have an library folder which contains very useful functions, sharable codes and modules such as chats, errors, database connections, rooms and settings.\n\n#### Similarly we have multiple components which combine and produce amazing UI and functionalities, which we would be discussing further"
},
{
"directory": "apps/meteor/client/components",
"description": "## client/components \n\n### This folder contains reusable UI components. These components are modular and can be used in different parts of the application to provide consistent and reusable user interface elements.\n\n### Components makes lifes easier as we don't have to create component again and again and it maintains consistency across different pages.\n\n- **Reusable UI components**: The folder houses code files that define reusable UI components, such as buttons, input fields, modals, cards, avatars, tooltips, or any other user interface element that can be utilized in multiple parts of the Rocket Chat application.\n\n\n- **Component structure**: Each component typically consists of a JavaScript or TypeScript file that contains the component's logic and functionality. It may also include associated stylesheets, templates, or configuration files specific to that component.\n\n\n- **Composition and customization**: Components can often be composed together to build more complex UI elements. Developers can leverage the components in the folder to assemble larger, composite components that cater to specific features or requirements of the Rocket Chat application. Components may also provide options for customization through props or configuration parameters.\n\n- **Consistency and UI guidelines**: The components in the \"client/components\" folder adhere to established UI guidelines and design patterns within the Rocket Chat project. They help maintain consistency in the user interface across different parts of the application and ensure a cohesive and intuitive user experience.",
"title": "Client/components"
},
{
"directory": "apps/meteor/client/lib",
"description": "## apps/meteor/client/lib/ \n\n- ***This contains Code which can be used by both Server and Client part of application.***\n\n### A collection of objects that are reused on all of the client sides.\n\n### Here we also perform server-side behaviour on the Client-side with the help of minimongo.\n\n### This is to:\n- **Limit code duplication**\n- **Encourage contributors to use the code that is already existing in the codebase**\n- **Avoid re-implementing logic or re-create functions**"
},
{
"directory": "apps/meteor/client/views",
"description": "# The Best place to Start (The FrontEnd)\n\n## *If you are a beginner looking to contribute to Rocket Chat, the \"client/views\" folder is an ideal starting point. It offers a clearer understanding of the application's inner workings by tracing module imports and observing component usage. By exploring this folder, you can learn how different components are structured, styled, and interact with each other. It provides valuable insights into the UI construction, facilitating improvements and feature additions. Starting your contribution journey in the \"client/views\" folder will enhance your understanding of the codebase and enable effective contributions to the project.*\n\n### The views is the directory where a combination of multiple components comes together in action to build a single Rocket.Chat page is seen by client-side(Frontend) users.\n\n### The root(Place from where execution/render starts) here can be seen in apps/meteor/client/views/root/AppRoot.tsx [here](./apps/meteor/client/views/root/AppRoot.tsx) where execution in the frontend begins\n",
"title": "Best place for beginners"
},
{
"file": "apps/meteor/client/views/root/AppRoot.tsx",
"description": "## The Starting Point\n\n### - AppRoot is an ReactElement, Which is an Layout, Responsible for rendering Child components, It initializes the application and establishes the layout. It plays a crucial role in setting up the initial structure and behavior of the frontend.\n\n- If You want to deeply understand how things are working you can trace elements and methods used in here",
"line": 12
},
{
"directory": "apps/meteor/private",
"description": "## Private Directory\n\n### This File is more Rocket.Chat specific, it contains informations about RocketCat bot, such as avatars, Transalations and some icons\n\n- All files inside a top-level directory called **private/** are only accessible from server code and can be loaded via the Assets API. This can be used for private data files and any files that are in your project directory that you don’t want to be accessible from the outside."
},
{
"directory": "apps/meteor/server",
"description": "### Server Directory\n\n- Server/ Directory is never loaded on the client side, People usually like to call it as backend and in Rocket.chat we use **NodeJs** as backend.\n- Most of the API Endpoints are created here and stored here through Database and in Rocket.chat we use **MongoDB** as Database\n- Any sensitive code that you don’t want served to the client, such as code containing passwords or authentication mechanisms, should be kept in the server/ directory.\n- *There are more Folders/Directories named as Server, Just remember all of them are servers*"
}
]
}
Loading
Loading