agile-learning-institute / mentorHub

9 stars 3 forks source link

The mentorHub Platform

mentorHub is a cloud platform that supports our operations, and serves the needs of staff, members, mentors, partners, and donors. This platform is here to give apprentices real-world experience working in a modern cloud computing environment, and exposure to a full design-build-run SDLC with QA controls, and CI/CD Automations. This is a list of all mentorHub repositories.

Contributing to the platform

Prerequisites

Software Engineer Workflow

Software Quality Workflow

What if I have a new idea

Before Creating new repositories

It is very unlikely that you will need to create a new repository, but if you should be lucky enough to start something from scratch use one of the templates below.

When viewing the template on GitHub select Use this template, then select Create a new repository. Make sure you set the repository Owner to "agile-learning-institute", name it as described below, and make it public.

After the repository has been created, open Settings and make the following changes:

  • Under Collaborators and Teams, add the mentorHub team with Maintain access, and the mentorAdmins team with Admin access
  • Under Branches click Add a branch protection rule, set the Branch name pattern to main, check Require a pull request before merging and then scroll down and click Create.

Templates

NOTE: If your desired template is not available (not checked off) then you can use the vanilla template, and you should consider creating a new template after you get your code to a functional state.

Naming Standards

All mentorHub repositories should follow this naming convention mentorHub-[service]-[element] where service is a service boundary name such as profile, partner, search, subject, etc. and element is one of ui | api. for example mentorHub-profile-ui would contain a Single Page Web App, that uses the mentorHub-profile-api api. All of the Mongo data structures and test data can be found in mentorHub-mongodb. Also note that these names are technology agnostic, but the code deployed within a project should be a specific implementation. i.e. mentorHub-search-api could be in any language, but should be implemented in only one.