Skip to content

Schema/API Design comments (Hunter Lathery) #9

@hlathery

Description

@hlathery
  1. For the ER diagram, Roommate going to chore assignment is currently: One or many roommates are assigned to one or no chore_assignments. Doesn’t it make sense to have a roommate able to be assigned to multiple chores. So rather: One or many roommates are assigned to none, one or many chores.

  2. Same situation with Roommate and Bill_List. One or many roommates could have none, one or many bills

  3. In API spec 1. Create Chore, it currently says create chore will assign it to a roommate, when you are only just creating the chore itself for any roommate to see. So maybe just remove the “assign to roommate” in the description

  4. Possibly add a no-repeat to your “frequency” enum, for one time chores that wouldn’t require repeating.

  5. There is a chores assignment POST, and a GET chores, currently it looks like there are only safety checks to make sure a roommate isn't assigned the same chore as another, but there's no way to see an assigned list of chores for yourself or another roommate.

  6. Currently almost all except a priority variable are assigned as bigints. Certain columns such as roommate_id and others that you believe would be logical to lower to a smaller int to reduce file size. Only thinking for when we will insert a million rows of data would probably make a decent size difference. Same with double precision float8 -> float4 for things that make sense.

  7. Would make sense to add the ability to remove a roommate, for if someone moves out, especially since bills divide by total roommates and if you have a roommate that isn’t there anymore you will have money still left to pay on it.

  8. Missing ability to see the status of chores , currently only 'completed' chores are available to see in chore history. Maybe add status to get chores

  9. Similar to above but chores and bills both have their PATCH statement which runs through the /assignments, however it doesn't seem as though there is currently an assignments table, only two separate attributes on the chore_assignments and bill_list table.

  10. Inside your schema for table chore_assignment, you are adding the constraint that status be either 'pending', 'in_progress', or 'completed'. This is good but it should also be a check in user input, as currently you can just put anything other than that as a string, and you will get a internal server error.

  11. Certain columns are allowed to be null in your schema when they should never be null, eg: bill_list has bill_id and roommate_id as null when they should never be. Verify other columns in other tables and make sure they make sense as null or not.

  12. Consider adding functionality for adding custom bill_types , or lessening strictness on the bill enum type. For example what if a user wants to split a cable bill with their roommates, or streaming services, etc.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions