GitHub-Organizations

Github organization.

To create and manage a GitHub organization effectively, you need to understand the key aspects of GitHub organizations and follow best practices for organization setup, repository management, access control, and collaboration.

Our Organization structure

Listing organizations:

  1. Github-sayukth (account)

    • github-sayukth (organization)
    • Devops-model
    • eagleiview
    • panchaytaseva-sb
    • project-Envozyme
    • sayukth-cheerfi
    • sayukth-citizen
    • sayukth-corporate
    • sayukth-giveback
  2. Github-merusphere (account)

    • github-merusphere
    • EagleEyview
    • Elitical
    • merusphereoss
    • PorterEU

GitHub Organization Standards and Rules

  • Creating and managing a GitHub organization effectively requires adherence to certain standards and best practices.
  • These standards ensure that the organization is structured, secure, and easy to navigate.

Below are the key standards to follow:

Naming Conventions:

  • Clear and Descriptive Names:Ensure that the name of the organization clearly represents its purpose or focus. This helps in identifying the organization easily.

  • Avoid Special Characters and Spaces: Use hyphens (-) instead of spaces or special characters to maintain consistency and avoid errors.

  • Use Camelcase: To allow multiple words to be combined into a single identifier while keeping each word visually distinct.

  • Example: GithubOrganizations, GithubTeams, CamelCase

Profile Information

  • Meaningful Description: Provide a concise and informative description of the organization. This should give an overview of what the organization does.

  • Profile Picture/Logo: Use a relevant and professional profile picture or logo.

  • Links to Resources: Include links to the official website, documentation, and other relevant resources.

Project(Repository) Standards:

  • Descriptive Names: Use names that clearly indicate the purpose or content of the repository.

  • Consistent Naming Pattern: Follow a consistent pattern for naming repositories to make them easily identifiable.

  • Projucts should be created as Public or Private depending on the data we store and accessability.

Discribing our organization structure following the standards.

Company accounts we have:

  • Sayukth
  • Merusphere

Structure of Organizations in each company account:

Sayukth:

Naming convention of the company github account

Github-Sayukth
  • We have to create a Organization for the account itself to maintain the repositories related to the company data.

  • In this we store the company website code and other data respected to the company.

Company account organization syntax:

Sayukth
  • For sayukth we have website, repository for that website stores under this organization.

  • Like this we need to follow syntax for all the products as mentioned bellow.

Creating Organizations for each product

We work on many products perallelly in a company, so here we need to maintain the github Organizations seperatly for each individual products. And also for some products we have sub products which we call it as varient.

product organizations naming syntax:

Syntax: ProductName[-<varient>]

Example: PanchayatSevaSB, PanchayatSevaTS

Note:

  • The PanchayatSeva is product of sayukth company. We are working with PanchayatSeva product for many states like SB, TS etc..

  • In the above example panchayatseva product have been differentiated with their respected state names where we call those state names a Varient.

  • PanchyatSeva - Product

  • SB- Variant

  • As we following the organization structure we have used Camelcase to differentite two Words “Panchayat” and “Seva” without any Space.

Creating Organizations for all products under Sayukth Company:

      Sayukth
      PanchaytaSevaSB
      DevOpsModel
      Cheerfi
      Sayukth-Citizen
      Sayukth-Corporate
      Sayukth-Giveback
      eagleiview
      project-Envozyme

Structure of projects in each organization:

projects > Repositories

Repository Naming: Use names that clearly indicate the purpose or content of the repository.

 Example:
 Mobile app >  MobApp
 Flutter desktop app > WebApp
 Web Server app > WebServerApp

Consistent Naming Pattern:

  • Follow a consistent pattern for naming repositories to make them easily identifiable.

  • project name should be included along with the Organization name

Syntax:
PanchayatSevaSB-MobApp 

1.Create projects under github-sayukth Organization:

2.Create projects under PanchayatSeva-sb Organization:

Web Server Application project:

  • PanchayatSevaSB-WebServer

Survey Mobile Application project:

  • PanchayatSevaSB-Survey-MobApp

Govt Mobile Application project:

  • PanchayatSevaSB-Govt-MobApp

DevOps project:

  • PanchayatSevaSB-DevOps

PanchayatSeva Product Tech Documentation:

  • PanchayatSevaSBDoc-Tech-

panchayatSeva-aadhaar-ocr Project:

  • PanchayatSevaSB-Aadhaar-OCR

panchayatSeva-psbot Project

  • PanchayatSevaSB-PSBOT

PanchayatSeva-erp-website Project

  • panchayatSevaSB-ERP-Website

PanchayatSeva-Website Project

  • PanchayatSevaSB-Website

3.Create projects under DevOpsModel Organization:

DevOps bootstrap Project:

  • DevOpsModel-Bootstrap-Startup

DevOps Automation Project:

  • DevOpsModel-Automation-Scripts

Dev-pipelines Project

  • DevOpsModel-Dev-Pipelines

4.Create projects under Cheerfi Organization:

Cheerfi-business-api Project:

  • Cheerfi-Business-API

Cheerfi-user-ui Project

  • Cheerfi-User-UI

cheerfi Product Tech Documentation Project

  • Cheerfi-Tech-Doc

cheerfi-static-rest-api Project

  • Cheerfi-Static-Rest-API

cheerfi-devops Project

  • Cheerfi-DevOps

cheerfi-core-api project

  • Cheerfi-Core-API

cheerfi-admin-ui Project

  • cheerfi-admin-UI

cheerFi-nft-store-api project

  • CheerFi-NFT-Store-API

cheerFi-smart-contract-api Project

  • CheerFi-Smart-Contract-Api

5.Create projects under Sayukth-Citizen Organization:

startxi Project

  • Sayukth-Citizen-StartXI

7.Create projects under Sayukth-Corporate Organization:

sayukth-digital-work project

  • Sayukth-Corporate-DigitalWork

sayukth-corp-website project

  • Sayukth-Corporate-CorpWebsite

8.Create projects under Sayukth-Giveback Organization:

tomcat-taglibs-standard Project

  • Sayukth-Giveback-TomcatTaglibs-Standard

hazelcast-wm-jakarta Project

  • Sayukth-Giveback-Hazelcast-WM-Jakarta

Github Teams

Teams are groups of organization members that reflect your company or group’s structure with cascading access permissions and mentions.

Effective team management in a GitHub organization ensures streamlined collaboration, clear access control, and enhanced productivity.

Team Naming Conventions:

Clear and Descriptive Names: Use names that clearly indicate the team’s purpose or role within the organization.

Consistent Naming Pattern: Follow a consistent naming pattern across all teams to make them easily identifiable.

Team Naming Pattern:

Syntax:
Team-<product_name>-<team(admin, dev,devops)_name>

Example:
Team-Panchayatseva-Dev

Teams Structure for Every Product:

Panchayatseva-SB:

  • Team-Panchayatseva-Admin
  • Team-Panchayatseva-Maintainer
  • Team-Panchayatseva-Dev
  • Team-Panchayatseva-DevOps
  • Team-Panchayatseva-Tester
  • Team-Panchayatseva-Doc

Note: we can use short names at product name in teams.

DevOpsModel:

  • Team-DevOpsModel-Admin
  • Team-DevOpsModel-Maintainer
  • Team-DevOpsModel-Dev
  • Team-DevOpsModel-DevOps
  • Team-DevOpsModel-Tester
  • Team-DevOpsModel-Doc

Cheerfi:

  • Team-Cheerfi-Admin
  • Team-Cheerfi-Maintainer
  • Team-Cheerfi-Dev
  • Team-Cheerfi-DevOps
  • Team-Cheerfi-Tester
  • Team-Cheerfi-Doc

Sayukth-Citizen:

  • Team-Sayukth-Citizen-Admin
  • Team-Sayukth-Citizen-Maintainer
  • Team-Sayukth-Citizen-Dev
  • Team-Sayukth-Citizen-DevOps
  • Team-Sayukth-Citizen-Tester
  • Team-Sayukth-Citizen-Doc

Sayukth-Corporate:

  • Team-Sayukth-Corporate-Admin
  • Team-Sayukth-Corporate-Maintainer
  • Team-Sayukth-Corporate-Dev
  • Team-Sayukth-Corporate-DevOps
  • Team-Sayukth-Corporate-Tester
  • Team-Sayukth-Corporate-Doc

Sayukth-Giveback:

  • Team-Sayukth-Giveback-Admin
  • Team-Sayukth-Giveback-Maintainer
  • Team-Sayukth-Giveback-Dev
  • Team-Sayukth-Giveback-DevOps
  • Team-Sayukth-Giveback-Tester
  • Team-Sayukth-Giveback-Doc

Merusphere:

Naming convention of the company github account

Github-Merusphere
  • We have to create a Organization for the account itself to maintain the repositories related to the company data.

  • In this we store the company website code and other data respected to the company.

Company account organization syntax:

Merusphere
  • For Merusphere we have website, repository for that website stores under this organization.

  • Like this we need to follow syntax for all the products as mentioned bellow.

Creating Organizations for each product

We work on many products perallelly in a company, so here we need to maintain the github Organizations seperatly for each individual products. And also for some products we have sub products which we call it as varient.

product organizations naming syntax:

Syntax: ProductName[-<varient>]

Example: Merusphere, Merusphere-OSS, Elitical
  • Merusphere - Product

  • OSS- Variant

  • As we following the organization structure we have used Camelcase to differentite two Words “Panchayat” and “Seva” without any Space.

Creating Organizations for all products under Sayukth Company:

      Merusphere
      Merusphere-OSS
      Elitical
      Eagleeyeview
      PorterEU

Structure of projects in each organization:

projects > Repositories

Repository Naming: Use names that clearly indicate the purpose or content of the repository.

 Example:
 Mobile app >  MobApp
 Flutter desktop app > WebApp
 Web Server app > WebServerApp

Consistent Naming Pattern:

  • Follow a consistent pattern for naming repositories to make them easily identifiable.

  • project name should be included along with the Organization name

Syntax:
Merusphere-DevOps

1.Create projects under Merusphere Organization:

Merusphere devops Project

  • Merusphere-DevOps

merusphere digital-work Project

  • Merusphere-DigitalWork

corp-website-de Project

  • Merusphere-CorpWebsite-DE

corp-website-com Project

  • Merusphere-CorpWebsite-Com

2.Create projects under Elitical Organization:

Elitical Server web application Project

  • Elitical-ServerWebapp

Elitical devops Project

  • Elitical-DevOps

elitical Fluter Desktop web project

  • Elitical-Webapp

Elitical Documentation Project

  • Elitical-Docs

3.Create projects under PorterEU Organization:

portereu-customer project

  • Portereu-Customer

PorterEU Product Documentation Project

  • PorterEU-Docs

PorterEU Admin Application Project

  • PorterEU-Admin

PorterEU Cloud Application Project

  • PorterEU-Cloud

portereu-driver Project

  • PorterEU-Driver

PorterEU DevOps Project

  • PorterEU-DevOps

4.Create projects under Eagleeyeview Organization:

Fluter Desktop application Project

  • ev-webapp

Teams Structure for Every Product:

Merusphere:

  • Team-Merusphere-Admin
  • Team-Merusphere-Maintainer
  • Team-Merusphere-Dev
  • Team-Merusphere-DevOps
  • Team-Merusphere-Tester
  • Team-Merusphere-Doc

Merusphere-OSS:

  • Team-Merusphere-OSS-Admin
  • Team-Merusphere-OSS-Maintainer
  • Team-Merusphere-OSS-Dev
  • Team-Merusphere-OSS-DevOps
  • Team-Merusphere-OSS-Tester
  • Team-Merusphere-OSS-Doc

Elitical:

  • Team-Elitical-Admin
  • Team-Elitical-Maintainer
  • Team-Elitical-Dev
  • Team-Elitical-DevOps
  • Team-Elitical-Tester
  • Team-Elitical-Doc

Eagleeyeview:

  • Team-Eagleeyeview-Admin
  • Team-Eagleeyeview-Maintainer
  • Team-Eagleeyeview-Dev
  • Team-Eagleeyeview-DevOps
  • Team-Eagleeyeview-Tester
  • Team-Eagleeyeview-Doc

PorterEU:

  • Team-PorterEU-Admin
  • Team-PorterEU-Maintainer
  • Team-PorterEU-Dev
  • Team-PorterEU-DevOps
  • Team-PorterEU-Tester
  • Team-PorterEU-Doc