Skip to content

Commit

Permalink
Merge pull request #16119 from primefaces/contribution-guide
Browse files Browse the repository at this point in the history
Contribution guide
  • Loading branch information
cetincakiroglu authored Jul 29, 2024
2 parents 6099492 + d7e083c commit cc662fe
Show file tree
Hide file tree
Showing 14 changed files with 253 additions and 1 deletion.
15 changes: 15 additions & 0 deletions src/app/showcase/doc/contribution/benefitsdoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Component } from '@angular/core';

@Component({
selector: 'benefits-doc',
template: `
<app-docsectiontext>
<p>
Contributing to PrimeNG comes with several benefits. Being part of an open-source project will enhance your career and open up exciting opportunities. Contributors and Committers will be listed on our
<a routerLink="/team">team page</a>. You'll gain significant visibility in the developer community while improving yourself as a professional.
</p>
<p>You'll be invited to a private communication channel at Discord to get in touch with PrimeTek. In addition, contributors have access to all PrimeNG add-ons like Premium Templates, Blocks, and UI Kit free of charge.</p>
</app-docsectiontext>
`
})
export class BenefitsDoc {}
16 changes: 16 additions & 0 deletions src/app/showcase/doc/contribution/cladoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Component } from '@angular/core';

@Component({
selector: 'cla-doc',
template: `
<app-docsectiontext>
<p>
PrimeNG is a popular Vue UI library maintained by PrimeTek, a company renowned for its comprehensive set of UI components for various frameworks. PrimeTek is dedicated to providing high-quality, versatile, and accessible UI components
that help developers build better applications faster.
</p>
</app-docsectiontext>
`
})
export class ClaDoc {

}
16 changes: 16 additions & 0 deletions src/app/showcase/doc/contribution/communicationdoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Component } from '@angular/core';

@Component({
selector: 'communication-doc',
template: `
<app-docsectiontext>
<p>
Join the Contributors channel on the PrimeLand Discord server to connect with PrimeNG staff and fellow contributors. In this channel, you can discuss the areas you want to contribute to and receive feedback. This channel is open to
everyone who'd like to contribute.
</p>
</app-docsectiontext>
`
})
export class CommunicationDoc {

}
20 changes: 20 additions & 0 deletions src/app/showcase/doc/contribution/contribution.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { AppDocModule } from '@layout/doc/app.doc.module';
import { AppCodeModule } from '@layout/doc/app.code.component';
import { IntroductionDoc } from './introductiondoc';
import { HelpNeededDoc } from './helpneededdoc';
import { CommunicationDoc } from './communicationdoc';
import { PathwayDoc } from './pathwaydoc';
import { BenefitsDoc } from './benefitsdoc';
import { ClaDoc } from './cladoc';
import { KeyPointsDoc } from './keypoints';


@NgModule({
imports: [CommonModule, RouterModule, AppCodeModule, AppDocModule],
declarations: [IntroductionDoc, HelpNeededDoc, KeyPointsDoc, CommunicationDoc, PathwayDoc, BenefitsDoc, ClaDoc],
exports: [AppDocModule]
})
export class ContributionDocModule {}
26 changes: 26 additions & 0 deletions src/app/showcase/doc/contribution/helpneededdoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Component } from '@angular/core';

@Component({
selector: 'helpneeded-doc',
template: `
<app-docsectiontext>
<p>PrimeNG is a community-driven project backed by the expertise and sponsorship of PrimeTek, and we appreciate any help you can provide. Here are some areas where you can contribute:</p>
<h3>Issue Triage</h3>
<p>Help us manage issues by;</p>
<ul class="line-height-3 px-10 m-0">
<li>Reproducing reported bugs</li>
<li>Clarifying issue descriptions</li>
<li>Tagging issues with appropriate labels</li>
</ul>
<h3>Sending Pull Requests</h3>
<p>We encourage you to send pull requests, especially for issues tagged with the <i>help-needed</i> label.</p>
<h3>Community Support</h3>
<p>Assist other users by participating in the issue tracker, GitHub discussions, and the PrimeLand Discord server. Your expertise can help others solve problems and improve their experience with PrimeNG.</p>
</app-docsectiontext>
`
})
export class HelpNeededDoc {

}
37 changes: 37 additions & 0 deletions src/app/showcase/doc/contribution/introductiondoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Component } from '@angular/core';
import { Code } from '@domain/code';

@Component({
selector: 'indroduction-doc',
template: `
<app-docsectiontext>
<p>
PrimeNG is a popular Angular UI library maintained by PrimeTek, a company renowned for its comprehensive set of UI components for various frameworks. PrimeTek is dedicated to providing high-quality, versatile, and accessible UI
components that help developers build better applications faster.
</p>
<h3>Development Setup</h3>
<p>To begin with, clone the PrimeNG repository from GitHub:</p>
<app-code [code]="code1" [hideToggleCode]="true" [hideStackBlitz]="true"></app-code>
<p style="margin-top: 1rem;">Then run the showcase in your local environment at <i>http://localhost:3000/</i>.</p>
<app-code [code]="code2" [hideToggleCode]="true" [hideStackBlitz]="true"></app-code>
<h3>Project Structure</h3>
<p>PrimeNG's project structure is organized as follows:</p>
<app-code [code]="code3" [hideToggleCode]="true" [hideStackBlitz]="true"></app-code>
</app-docsectiontext>
`
})
export class IntroductionDoc {
code1: Code = {
basic: `git clone https://github.com/primefaces/primeng.git
cd primeng`
};
code2: Code = {
basic: `npm install
ng serve`
};
code3: Code = {
basic: `- app
- showcase // website
- components // main directory of components and directives`
};
}
16 changes: 16 additions & 0 deletions src/app/showcase/doc/contribution/keypoints.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Component } from '@angular/core';

@Component({
selector: 'keypoints-doc',
template: `
<app-docsectiontext>
<p>
PrimeNG has several add-ons such as UI Kit, Premium Templates, and Blocks that rely on design tokens and styling. Any core structural changes, such as adding new props, events, or updating design tokens, should be communicated with the
core team to ensure consistency and compatibility.
</p>
</app-docsectiontext>
`
})
export class KeyPointsDoc {

}
21 changes: 21 additions & 0 deletions src/app/showcase/doc/contribution/pathwaydoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Component } from '@angular/core';

@Component({
selector: 'pathway-doc',
template: `
<app-docsectiontext>
<p>PrimeTek offers an organization structure involving contributors and the core team:</p>
<h3>Contributor Role</h3>
<p>After a certain period of frequent contributions, a community member is offered the Contributor role.On average, it may take about three months, but the exact duration can vary depending on the individual commitment.</p>
<h3>Committer Role</h3>
<p>If a contributor actively participates in the codebase and PRs, their role may be upgraded to a Committer level, providing direct commit access to the PrimeNG codebase.</p>
<h3>Employment</h3>
<p>PrimeTek prefers to hire team members from open source committers, so you may be offered a full-time position when a position becomes available.</p>
</app-docsectiontext>
`
})
export class PathwayDoc {

}
1 change: 1 addition & 0 deletions src/app/showcase/layout/app.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ export const routes: Routes = [
{ path: 'stepper', loadChildren: () => import('@pages/stepper/stepperdemo.module').then((m) => m.StepperDemoModule) },
{ path: 'steps', loadChildren: () => import('@pages/steps/stepsdemo.module').then((m) => m.StepsDemoModule) },
{ path: 'support', loadChildren: () => import('@pages/support/support.module').then((m) => m.SupportModule) },
{ path: 'contribution', loadChildren: () => import('@pages/contribution/contribution.module').then((m) => m.ContributionModule) },
{ path: 'styleclass', loadChildren: () => import('@pages/styleclass/styleclassdemo.module').then((m) => m.StyleClassDemoModule) },
{ path: 'tag', loadChildren: () => import('@pages/tag/tagdemo.module').then((m) => m.TagDemoModule) },
{ path: 'table', loadChildren: () => import('@pages/table/tabledemo.module').then((m) => m.TableDemoModule) },
Expand Down
10 changes: 10 additions & 0 deletions src/app/showcase/pages/contribution/contribution-routing.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { ContributionComponent } from './contribution';


@NgModule({
imports: [RouterModule.forChild([{ path: '', component: ContributionComponent }])],
exports: [RouterModule]
})
export class ContributionRoutingModule {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<app-doc
docTitle="Contribution - PrimeNG"
header="Contribution Guide"
description="Welcome to the PrimeNG Contribution Guide and thank you for considering contributing."
[docs]="docs"
></app-doc>
11 changes: 11 additions & 0 deletions src/app/showcase/pages/contribution/contribution.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { ContributionRoutingModule } from './contribution-routing.module';
import { ContributionComponent } from './contribution';
import { ContributionDocModule } from '@doc/contribution/contribution.module';

@NgModule({
imports: [CommonModule, ContributionRoutingModule, ContributionDocModule],
declarations: [ContributionComponent]
})
export class ContributionModule {}
51 changes: 51 additions & 0 deletions src/app/showcase/pages/contribution/contribution.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { Component } from '@angular/core';
import { BenefitsDoc } from '@doc/contribution/benefitsdoc';
import { ClaDoc } from '@doc/contribution/cladoc';
import { CommunicationDoc } from '@doc/contribution/communicationdoc';
import { HelpNeededDoc } from '@doc/contribution/helpneededdoc';
import { IntroductionDoc } from '@doc/contribution/introductiondoc';
import { KeyPointsDoc } from '@doc/contribution/keypoints';
import { PathwayDoc } from '@doc/contribution/pathwaydoc';

@Component({
templateUrl: './contribution.component.html'
})
export class ContributionComponent {
docs = [
{
id: 'introduction',
label: 'Introduction',
component: IntroductionDoc
},
{
id: 'helpneeded',
label: 'Help Needed',
component: HelpNeededDoc
},
{
id: 'keypoints',
label: 'Key Points',
component: KeyPointsDoc
},
{
id: 'communication',
label: 'Communication',
component: CommunicationDoc
},
{
id: 'pathway',
label: 'Pathway',
component: PathwayDoc
},
{
id: 'benefits',
label: 'Benefits',
component: BenefitsDoc
},
{
id: 'cla',
label: 'CLA',
component: ClaDoc
}
];
}
8 changes: 7 additions & 1 deletion src/assets/showcase/data/menu.json
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,12 @@
}
]
},
{
"name": "Contribution",
"icon": "pi pi-users",
"routerLink": "/contribution",
"badge": "NEW"
},
{
"name": "Discover",
"icon": "pi pi-search",
Expand Down Expand Up @@ -617,4 +623,4 @@
]
}
]
}
}

0 comments on commit cc662fe

Please sign in to comment.