Skip to content

Instantly share code, notes, and snippets.

@thorncp
Created March 14, 2012 18:38
Show Gist options
  • Save thorncp/2038536 to your computer and use it in GitHub Desktop.
Save thorncp/2038536 to your computer and use it in GitHub Desktop.
INITIAL SCOPE OF WORK FOR RESOURCE DATA, INC January 27 2011
RDI SCOPE OF WORK – WORKING TOGETHER & PHASE 1 OF MARKETING ARCHIVE
WORKING TOGETHER - 8 hours
1. Cover the following topics and decide upon standards
a. Git
- workflow
b. Testing frameworks
c. Rails template
- a skeleton app template, to be reused on the other apps?
- use an oos template? twitter bootstrap, etc
d. Gems
e. Issue tracking
- github
- tons of online options
f. More?
- access to code
- environment set up
- continuous integration
- browser support defined
- review cycles, responsibilities
- assumptions
* environment setup goes smoothly
* not dependent on being on site at KAI
* dev/test/prod setup
MARKETING ARCHIVE
1. Restart application as Rails 3.2 - 8 hours
a. Models, controllers, and views can, for the most part, be copied directly over to the new application, with minor configuration changes.
- tasks
* review code - 2 hours
* transfer routes - 1 hours
* convert ActiveRecord queries - 1 hour
* convert assets (css, js) - 4 hours
- assumptions
* current code is bug free and easy to grok
* ruby version is not changing
* a fair amount of js to convert (hard to quantify)
* new application created, existing code migrated over
2. Modify Photos - 30 hours
a. Allow PDFs, AI files, EPS to be uploaded and thumbnailed to JPEG - 8 hours
- tasks
* interface for uploading/viewing - 2 hours
* processing/integrating with lib - 2 hours
* tests - 4 hours
- assumptions
* roles for manipulating images already determined
* can use existing libs
* storage location is known
* enough disk space to support demand
* no file conversion required
* if processing to be done as background jobs, a system for this is already in place
* no new model necessary
b. Add rating system (thumbs up, thumbs down) - 4 hours
- tasks
* model integration - 1 hour
* interface for voting - 1 hour
* tests - 2 hours
- assumptions
* can use lib (thumbs_up?)
c. Convert exif parsing to mini_exiftool gem - 8 hours
- tasks
* extract code to gem - 2 hours
* tests - 4 hours
* refactor - 2 hours
- assumptions
* current code is reasonably organized
d. Fix any failing meta data parsing - 4 hours
- tasks
* determine failures (via tests) - 2 hours
* fix error - 2 hours
- assumption
* small number of errors
* no Heisenbugs
e. Add geocoding, manually and by EXIF - 5 hours
- tasks
* update model to include lat/lon - trivial
* interface to select lat/lon from google map - 2 hours
* process to extract exif - 1 hour
* tests - 2 hours
3. Modify Project Descriptions - 12 hours
a. Add references. (see 4)
b. Add Special notes field - 1 hour
- tasks
* update model - trivial
* update interfaces - 1 hour
- assumptions
* free form text field that users can put whatever into (minimal validations)
c. Convert start date, cost, and end date to string - 2 hours
- tasks
* update model - trivial
* update usages of fields - 1 hour
* update tests - 1 hour
d. Add ability to push projects to Kittelson.com (API component to be added on kittelson.com) - 8 hours
- tasks
* interface - 1 hour
* processing - 1 hour
* tests - 2 hours
* potential overhead (likely place for problems to pop up) - 2 hours
- assumptions
* api is already implemented
* api can be consumed with a lib
* create is the only operation (no read, update, destroy)
4. Add References - 8 hours
a. Name, title, agency, number, email, address - 8 hours
- tasks
* db design - 1 hour
- polymorphic? explicit?
* create model(s) - trivial
* validations - 1 hour
* interfaces - 2 hours
* test - 2 hours
* overhead for potential problems - 2 hours
b. Belongs_to Testimonials and Project Descriptions
covered above
5. Add Boilerplate Text - 4 hours
a. Title, text, special instructions, categories, review box like Projects, images
- tasks
* model - trivial
* interface - 2 hours
* tests - 2 hours
- assumptions
* simple crud
6. Add Testimonials - 6 hours
a. Can belongs_to project or have a title
- factored into below tasks
b. Project number, text, review box
- tasks
- model - trivial
- interface -3 hours
- tests - 3 hours
- assumptions
* simple crud operations
7. Add Awards - 4 hours
a. Title, description, date, image
- tasks
- model - trivial
- interface - 2 hours
- tests - 2 hours
- assumptions
* simple crud operations
* not related to other models
8. Add Employees - 4 hours
a. Name, initials, office, photo
- tasks
- model - trivial
- interface - 2 hours
- tests - 2 hours
- assumptions
* simple crud operations
* not related to other models
9. Modify application to be multi‐tenant - 24 hours
a. Title, logo, custom uri, custom css - 16 hours
- tasks
* design/implementation - 6 hours
- where custom assets go (db/filesystem)
- create assets from template, user can modify? upload assets directly?
- create tenant through app?
* authentication - 2 hours
* test - 8 hours
- assumptions
* use existing auth lib
b. All models are associated with tenant model - 1 hour
- tasks
* update models - 1 hour
c. All default scopes modified to require tenant - 3 hours
- tasks
* update scopes - 1 hour
* test - 2 hours
d. Automate adding of custom uris to Nginx configuration file for custom uri support - 4 hours
- not entirely sure how simple this will be
- tasks
* process to update config
10. Testing suite - 20 hours
a. Aim for quality coverage of application (75%+ test coverage)
- tasks
* add tests for existing code (with reverse engineering to determine what code is supposed to do) - 16 hours
* refactoring - 4 hours
- assumptions
* moderate amount of refactoring
* code is somewhat readable and easy to grok
b. Exact work to be decided with Chris and Kyle
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment