Skip to content

Instantly share code, notes, and snippets.

@jdecode
Created September 24, 2020 08:52
Show Gist options
  • Save jdecode/a87c6631c533a13410380113e128b645 to your computer and use it in GitHub Desktop.
Save jdecode/a87c6631c533a13410380113e128b645 to your computer and use it in GitHub Desktop.
How to setup a project in ucreate

These are notes (mostly in comments) about the steps that are taken while setting up a new project

  1. Create Slack channel (internal, for developers/ucreate team/integration of tools)
  2. Add team members, and introduce the team
  3. Add "Integrations Bot" user (the "bot" user that will have the permissions for :reviewee: notifications)
  4. Setup GitHub repos (multiple, in case of separate client/server setups), and add people to the repo
@jdecode
Copy link
Author

jdecode commented Sep 24, 2020

  1. Leave notifier (for team specific leaves)
  2. Connect with :reviewee: for commit-statuses
  3. Add to the list of projects to share commit statuses(every morning in dev channel)
  4. "Stand-up" and "Status update" messages set for morning/evening during weekdays

@jdecode
Copy link
Author

jdecode commented Sep 24, 2020

  1. Create 2 1Password vaults - for developers and a separate one for founder (for storing sensitive access - like domain name or AWS root account details)
  2. Heroku account (with credit card)
  3. AWS account (with credit card)
  4. Postmark account (with credit card)
  5. Domain management account (GoDaddy / Google Domains etc)
  6. SSL setup
  7. Build-packs (for respective tech-stack)
  8. Pre-commit hooks for Lint'er checks (and re-run on CircleCI/GitHub Actions/Cloud Build)
  9. Pre-push hooks for Lint'er checks (same on cloud CI tools)
  10. Set-up CI/CD pipeline setup with (at least) 2 apps (UAT and PROD)
  11. Setup Postgres, New Relic, Papertrail, Rollbar, Slack, Trello - all integrations (in whatever capacity is required)
  12. Make sure that the tools above have their respective settings correctly configured (to be explained in comments)

@jdecode
Copy link
Author

jdecode commented Sep 24, 2020

Rollbar:

  1. Installed
  2. Slack integration (via Trello or direct?)
  3. Trello integration
  4. Alerts are enabled
  5. People tracking is configured (with right session data)

Important note
In case of an exception generated via Rollbar:

  1. TDD must be verified in extreme detail after previously-missed-test-cases are updated (before fixing the code)
  2. The error that is generated due to erroneous code must be fixed immediately
  3. Code review to be done by at least 2 reviewers after the changes (more the merrier)

@jdecode
Copy link
Author

jdecode commented Sep 24, 2020

  1. TDD setup (with code-coverage analysis)
    1. Framework is setup
    2. Hello world (or any other "test") is executed - that confirms the setup
  2. Postman setup (with credit card account)
  3. Setup "Newman" to run against Postman collection URL (using Postman Token)

@jdecode
Copy link
Author

jdecode commented Sep 24, 2020

Missed earlier:
Use Boilerplates for deployments (PHP, Nodejs, R.JS, RN)

@jdecode
Copy link
Author

jdecode commented Sep 25, 2020

New Relic:

  1. Install (1-click installation from Heroku)
  2. Ensure that the APM package is selected (and language/framework specific instructions are followed wherever necessary)
  3. Check Apdex score (should be > 0.9)
  4. Alerts are enabled (as deemed fit by the team - someone needs to fill this part with specifics - "alert guide")
  5. Time value is decreased by 1% every 2 weeks (thus allowing Apdex score to increase)

@jdecode
Copy link
Author

jdecode commented Sep 25, 2020

Papertrail:

  1. Configured through Heroku
  2. Alerts are enabled (again, need to be specific here - "alert guide")
  3. Filter HTTP status codes to remove from logging (200, at the very least, for static content - JS/CSS/app-icons/images etc)
  4. Ensure that the team is aware of different types of errors (H12, H13 etc) - how to ensure this?

@jdecode
Copy link
Author

jdecode commented Sep 25, 2020

Dynos:

  1. No free dynos on UAT or Production environments : Go for the basic version that does not "sleeps" after 30 minutes
  2. Dyno usage for any duration (last 24 hours, last 2/3/7 days etc) must be less than 30%

@jdecode
Copy link
Author

jdecode commented Sep 25, 2020

Pre push/commit hooks:

  1. Code linters are installed and set to check for common issues
  2. The same configuration must be executed at CircleCI (or whichever CI tool is used) and any issue due to a failed Linter check must be reviewed by more than 1 reviewer, and the cause must be identified and respective developer must be explained the process again - ensuring that the same issue is not repeated
  3. Unit test cases must be executed here
  4. Postman test cases must be executed here
  5. A pre-identified code-coverage %age must be adhered to at this point of time, and unable to do so must disable the commit to be committed/pushed

@jdecode
Copy link
Author

jdecode commented Feb 25, 2022

README file in GitHub

  1. Steps mentioned in README file should be perfect - no typos, no incorrect commands, no incorrect sequence of commands
  2. OS/App dependencies must be clearly mentioned (software versions)
  3. If there are ENV VARS that are to be fetched from a 3rd party provider, steps to get those must be included

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment