Skip to content

jollygoodcode/Project_Checklist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

Project Checklist

Jolly Good Code is a boutique software consultancy in Singapore that specializes in Agile engineering with Ruby (and Rails).

We do a number of projects every year and Anchors of a project are responsible for going through this checklist whenever we start a project.

This checklist helps to ensure consistency in communication and practices across all projects, and more importantly ensure quality in our delivery.

However, depending on situations, it's ok to deviate from the checklist when required.

Project Kickoff

Firstly, decide on a codename for the project, then setup various services as follows, mainly for communication between JollyGoodCoders and the Client and to facilitate app development.

Details of the setup are also documented in our Guides (to be further updated).

Communication

  • Chronicles.io
  • PivotalTracker
  • GitHub (with empty repo and copy Project Checklist to Issues)
  • Slack and Integrations

App Development

  • Heroku (Staging)
  • Heroku (Production)
  • Codeship
  • deppbot

Slack Integrations

  • Chronicles.io
  • PivotalTracker
  • GitHub
  • Heroku
  • Codeship

Optionals

  • CodeClimate
  • HoundCI

Pre-Production

As we start to build the project, we need to check the following:

Code

  • Latest version of Ruby and Rails defined in Gemfile
  • Ensure all configuration and keys are stored in ENV variables
  • Ensure all Model associations have the necessary dependent: destroy
  • Setup Attache + AWS S3 for storing user-generated content

Optimization

  • Optimize according to suggestions by Google's Pagespeed
    • Use heroku-deflater - see blog
  • Enable bullet and lol_dba and check and optmize all SQL queries
  • Optimize all images with ImageOptim or Smusher
  • Enable lazy loading of images if app is image heavy

ActiveJob

  • Ensure all/most emails are sent via background processes
  • Ensure all/most images are processed via background processes, or use Attache

Optional

  • Ensure Web Accessibility with WAVE

Production

  • Concurrent Server
    • Puma recommended at 1-2 x PUMA_WORKER
  • Start your Worker?
  • Setup Database with (sizable) Memory
  • Setup Backup Strategy
    • heroku pg:backups schedule --at '03:00 Asia/Singapore' DATABASE_URL --app <app>
  • Setup Logging Strategy
  • Setup Monitoring
  • Setup Errors Tracking
  • Update DNS
    • Add custom domains (www and root) to Heroku
    • CNAME www to Heroku URL; Redirect 302 root to www
  • Update DNS Entry for Mail Services
  • Update Basement specific ENV in Heroku's config (e.g. WWW_HOSTNAME etc)

This checklist is ever evolving and we would love to have your inputs too.

Send us an issue! ❤️

About

💂‍♂️ Project Checklist (when we start a new project)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published