Skip to content
Ed Herman edited this page Dec 11, 2019 · 9 revisions

Database Schema

users

column name data type info
id integer null:false, unique:true, indexed
name string null:false, indexed
email string null:false, unique:true
password_digest string null:false, unique:true
session_token string null:false, unique:true, indexed
timestamps datetime

projects

column name data type info
id integer null:false, unique:true, indexed
name string null:false, indexed
description text
manager_id integer null:false, indexed
timestamps datetime

Todo Lists

todo_lists

column name data type info
id integer null:false, unique:true, indexed
name string null:false, indexed
details text
project_id integer null:false, indexed
timestamps datetime

todo

column name data type info
id integer null:false, unique:true, indexed
description string null:false, indexed
todo_id integer null:false, indexed
notes string
due integer foreign key (points to event), indexed
complete boolean null:false
timestamps datetime

Message Board

messages

column name data type info
id integer null:false, unique:true, indexed
title string null:false, indexed
category string indexed
project_id integer null:false, indexed
body text null:false
timestamps datetime

Schedule

events

column name data type info
id integer null:false, unique:true, indexed
name string null:false, indexed
start datetime null:false
end datetime null:false
notes text
project_id integer null:false
timestamps datetime

Poloymorphic Associations:

comments

column name data type info
id integer null:false, unique:true, indexed
author_id integer null:false, indexed
body text null:false
commentable reference polymorphic: true
timestamps datetime
  • todo lists, todo items, messages, and events are commentable

Potential Bonus:

assignments

column name data type info
id integer null:false, unique:true, indexed
user_id integer null:false, indexed
assignable reference polymorphic: true
timestamps datetime
  • todo items and events are assignable

subscriptions

column name data type info
id integer null:false, unique:true, indexed
user_id integer null:false, indexed
subscribable reference polymorphic: true
timestamps datetime
  • anything that is commentable is subscribable

boosts

column name data type info
id integer null:false, unique:true, indexed
author_id integer null:false, indexed
body string null:false
boostable reference polymorphic: true
timestamps datetime
  • messages, events, and comments are boostable

Recent Updates Displayed at bottom of page

  • Project Activity from timestamps info