Comments (8)
GOAL:
- Come up with a clean and simple way to represent:
- The concept of a common area rci.
- A returning's student rci
- A new student's rci that has been pre-filled by the RA, but might not yet reflect the room components the resident actually chose.
from project-phoenix.
Proposed DB Schema:
- RCI:
- RCIID
- Current
- CreationDate
- BuildingCode
- RoomNumber
- GordonID (Can be null)
- RCIComponent:
- RCIComponentID
- RCIComponentName
- RCIID
- Damage:
- DamageID
- DamageDescription (Can be null)
- DamageImage (Can be null)
- DamageType
- RCIComponentID
from project-phoenix.
Explanation:
RCI:
I've dropped the concept of a "ResidentRCI" and "RoomRCI" in favor of that of a simple RCI.
If a record in the RCI table doesn't have a gordon_id, it is for a common area. If a record in the RCI table has a gordon_id, it is for a person.
I added a CreationDate column to indicate when the rci was created. This is to help distinguish this year's rci from last year's.
Current is a boolean, which gets set to False upon Checkout.
RCIComponent:
This table no longer has a "RoomRCI" column. An RCIComponent record is associated with one rci. This is actually sufficient to cover the representation of the three goals I outlined.
Damage:
Two added colums. DamageImage which will be a path to where the picture of the file is stored on the file system. DamageType to help quickly tell if we should expect the damage to be an image or text description.
from project-phoenix.
Scenarios:
These are to prove to myself that the above representation works.
Assumptions:
- Residents create their rci. The system doesn't populate them before hand.
- In terms of the UI, you can create two types of rcis; a personal one, and a common area one. Both create the same type of record in the rci table, except that in the case of the common are, the rci record has no gordon id.
Common Area RCI:
Resident creates a common area rci for an apartment.
Other members of the apartment can access that rci because the system has a record of room assignments and can seee that they are part of that apartment.
Pre-filling:
RA creates and fills out rci for both new students based on initial assumptions on what furniture residents will choose.
To make the furniture the residents actually choose match up with what the system has, we provide an interface for the ra to reassign components to a different rci. In the database, this simply means changing the RCIID value for an RCIComponent.
The hard thing in this scenario is making an intuitive interface for this to happen. Database-wise, making the change is easy.
from project-phoenix.
I like the simplification here! Nice work.
Trying to make sure I understand though - can an RCIComponent exist with a null value for RCIId? Like, before the components have been assigned to a specific RCI? Or would the system just automatically assign it to some RCI, and then if a change needs to be made regarding which RCI it belongs to, that's fine?
from project-phoenix.
Yup, the RA will just have to assign it to one of the RCIs. Later, once the ra finds out the actual furniture partitioning, he/she can then reassign components to the correct rci.
from project-phoenix.
So the RA has to assign components to a certain RCI manually? Or the system will automatically assign components, to minimize RA work?
from project-phoenix.
Database schema has been changed accordingly.
from project-phoenix.
Related Issues (20)
- Figure out bathrooms for suites HOT 5
- Add "Other" Component
- Bind images and text descriptions HOT 5
- Differentiate fines/charges HOT 8
- Accurately reflect RA vs. AC HOT 1
- Move furniture around from within the input view. HOT 2
- Legal wording HOT 4
- DateTime is misleading HOT 2
- User Error Responses HOT 3
- Add cost column to RciComponent Table HOT 1
- RD and Admin functionality documentation HOT 2
- Add logging abilities HOT 6
- Admin perspective on various signatures HOT 1
- Common Area Generation Problem HOT 2
- Top logo spaced oddly in IE HOT 1
- Issues encountered during first release HOT 3
- Bug Dump
- Update Readme to reflect recent changes
- Issues encountered during the second checkin HOT 2
- Figure out who updates the RoomAssign Table and how they do so
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from project-phoenix.