CUCentralAdvancement / github-docs

Documentation and Best Practices for using GitHub for Advancement Projects
MIT License
2 stars 1 forks source link

Standards

This repo holds the standards used when creating and editing code in the CUCentralAdvancement GitHub Organization. The documentation is still in active development and will change structure, but all known stubs have been created. As always, PR's are welcome!

TOC

GitHub now includes ToC for all project readmes. Look ^^^ as you scroll.

GitHub Administration

There are many facets of administering the GitHub Organization from creating and archiving projects to managing user access.

Development Philosophies and Workflows

Every great development team needs to share a coherent vision to build out the best applications possible. Good architecture should be stamped and printed across hosted applications just like DNA serves as the building block of life. We adapt our workflows and philosophies as time moves on, but here we will discuss the DNA that sits at the core of every development decision, whether it be writing code or performing project management work.

Frontend Apps And Concerns

The frontend stack is built off of React, Tailwind CSS, and node/TS. So far Next.js has handled the frontend routing, tooling, and SSR/static compilation whether the app needs a server or not.

Backend Apps And Concerns

The backend stack is built off of node/TS, Go, and potentially Elixir/Phoenix. Older applications use PHP, but those applications are being moved to the new stack with an expected deprecation of PHP usage by Q3 of 2021.

Local Development

Each project will have a unique local development setup that will be detailed in the project's readme file, but there are some things that are good to know across projects. Over time, this list will be filled in.

Heroku Platform

Heroku is the platform used to run frontend and backend applications. While Heroku allows for many languages to be deployed on its infrastructure, we will only discuss deploying apps written in TS/JS, Elixir, Go, Ruby, or PHP. There are also a few services that remain consistent across apps.

You can view the Heroku docs in their own repo: https://github.com/CUCentralAdvancement/heroku-docs

Salesforce

Will be used somehow for online donations and donor management. The "NextGen" project controls development of Salesforce-related things, and the Digital Engagement/Marketing team has not been involved in the development as much as initially planned.

Legacy Apps

A few applications currently in production are scheduled to be deprecated but there is no hard timeline for them to go offline.

Apps Partially Developed

Several applications and ideas were partially developed and then abandoned for better solutions. Instead of deleting those pieces of documentation, they will be listed here for historical reference.