##Users
User can register and log in to see content specific to the user.
####OpenID
OpenID and OAuth 2.0, i.e. Google Account will generate a user in the database using the details from Google Account automatically.
##Devise
##Models
- Projects
- Drawings
- Parts
- Links (ProjectUser)
- Users
####Project
- id:
- name: name of the project
- user_id: user_id
- title: string
- description: string
- date_created: date-time
- keywords: string of keywords separated by comma
- client: string
- architect: string
- designer: string
- date_completed: date
####Drawing
- id:
- name: string
- project_id: project.id
- title: string
- series: string
- revision: string
- has_part: boolean
- drawn_by: string
####Part
- id
- name: string
- drawing_id: drawing.id
- assembly: part.id
##User Stories
- User can create Projects
- User can access other Projects which are shared with them
--
- A Project is a Building or part of a building depending on scope of work.
- A Project has one user_id which is the owner
- A Project can be shared with other users
- A Project has many Drawings
- A Project has many Parts
--
- A Drawing is a document to describe the project
- A Drawing always have an attachment. PDF.
- A Drawing links to many other drawings
- A Drawing has one parent drawing
- All Drawings are linked by relationships using the drawing Number.
--
- A Part is an identifiable object to be fabricated/produced.
- A Part may contain many Parts, i.e. an Assembly
- A Part has one drawing.
##Set up GEMFILE
simple_form
devise
bootstrap
friendly_id
settingslogic
cancan
##Validation
###Project creation
Projects can only be created once signed in.
###Drawing Creation
Only created once uploaded a PDF file.
###Part Creation
Only created once a drawing is created with a has_part value is True.
###Automation - company specific
-
Projects number is autogenerated by the year that the project is created.
-
year is automatically filled with current year
##RESOURCES
Devise - Cancan - Role Model: Phase2Technology.com
Drag-n-Drop: dannemanne.com
Rails paperclip drag and drop multiple files: StackOverflow
Add sensitive credential information to local computer StackOverflow
Add associations to models Ruby On Rails
Edit .bash_profile to store sensitive data for rails app: refinsolutions.com
Friendly Urls: railscasts
Simple explanation the difference between has_One vs belongs_to: StackOverflow
More about has_one vs belongs_to : requiremind.com
Solve PermanentRecord error for AWS S3: StackOverflow
##Reference
http://railscasts.com/episodes/304-omniauth-identity?view=asciicast