Skip to content

Latest commit

 

History

History
65 lines (33 loc) · 5.34 KB

CONTRIBUTING.md

File metadata and controls

65 lines (33 loc) · 5.34 KB

Pana MIA Club

Contributing to this project

One of the goals of Pana MIA Club is to engage the community in educational and supportive collaboration, and as such this repository is designed to foster that engagement while being a valuable resource for developers of all skills to comfortably hone their teamwork and code collaboration. Our code guidelines are not meant to be strict rules, but to provide a framework of learning how to participate in an organized team while implementing best practices within delivered code.

Code evaluation and review is done for all contributors to the project. These critiques are meant to keep the level of code quality and consistency in line with the project standards. After reading our Contribution guidelines, please complete our Contribution Agreement form.

Communication:

While we strive to keep our Roadmap as public as possible, please reach out to us if you are interested in contributing. We want to ensure we give all contributions meaningful attention, and those that are outside of our roadmap or priority list may not get attention until our roadmap shifts.

Following Set Standards:

A great starting point for contributing is to review the existing code, especially areas of the project that relate to the contributions you are interested in submitting. While we hope to be flexible in some regards, many of the set practices and standards have been decided on by the team, and as such may be cause to deny a contribution that falls outside of this standard.

Vetting libraries for the project:

  • While adding a new library/import to the project might be an easy solve for a specific task, we take these additions very seriously. Outside code can carry many unknown factors, and these libraries will be review based on our same guidelines for rest of our contributions.

  • Specific to external libraries and services, the level of support and frequency of maintenance of these projects will be a deciding factor in their inclusion.

  • For browser features, please use CanIUse.com or a similar service to ensure we are supporting as many visitors as possible.

Code Complexity:

  • In order to foster a community of contribution, it is necessary to consider code complexity. The project should remain accessible, easy to read, and should ideally have a low spin-up time for new contributors.

  • Code should be well organized, use appropriate naming for objects and variables, and be formatted in a legible way.

  • Comments and notes within the code are encouraged to provide clarity to particularly difficult pieces, or even simply as references to the docs or guides related to the practices/libraries being used.

  • Sometimes in the interest of the project, we may abandon features altogether if they introduce too much complexity compared to the value that they provide.

Design And UI:

  • Please re-use existing design components and elements when possible. For new features, we should always consider how we can make it consistent with the existing design, and possible re-usable for the rest of the project.

  • Attention should be given to the use of spacing, color, and flow of the application. While functionality it important, having a consistent brand identity and user interface will help the users of the project.

  • Less can be more in the terms of UI. Focus on ease-of-use and familiarity, instead of wow-factor or additional unnecessary features.

  • Accessibility is always important to Pana MIA Club, and a baseline for good accessibility should be considered an industry standard. Improving the accessibility of our site will always remain a high on our priority list, and these contributions to ensure that differently-abled people can access the site are most valued.

Security:

  • API keys, credentials, and any other sensitive information is forbidden from being in any commit of a contribution. We would ask that you re-create these in a clean contribution branch without any history of this information.

  • Credentials should not be passed through any public communication channels or services, and any private communication about credentials should be cleaned as soon as they are transferred. We recommended using a Password Manager for storing credentials, as well as a safe service to share passwords, such as pwpush.com

  • As we store information for our users, limiting access to user data and implementing proper authentication for relevant portions of the project are considered mandatory.

  • In addition to the information that we directly store, any use of the console, libraries or external services that capture logging or user information should be considered as high risk - and we should ensure we are clearing or anonymizing any captured data.

Optimizations:

  • Optimizations, especially those related to site speed or budget, are always welcome.

  • Some optimizations are considered mandatory, such as compressing large images, reducing excessive server and database calls, or removing constant polling.

This is a living document. As we discuss and evolve the standards of the project, we will relay that information here and update our Contribution Agreements. If you are aligned with the entirely of our guidelines, please complete our Contribution Agreement form, even if you don't have an immediate contribution to make.

Contact Us

If you have any questions, please contact us.