Closed sergey-platonov closed 10 months ago
First iteration
User Collection:
_id
: ObjectIdusername
: Stringemail
: StringpasswordHash
: StringprofilePic
: String (URL or base64 encoded data)bio
: StringdateJoined
: DateTrip/Event Collection:
_id
: ObjectIdtripName
: Stringdescription
: StringstartDate
: DateendDate
: Datelocation
: Array of Embedded Documents (see below for structure)isPrivate
: BooleanorganizerId
: ObjectId (reference to User's _id
)bannerImage
: String (URL or base64 encoded data)Location Embedded Document (within Trip/Event Collection):
type
: Enum (City, Attraction, Venue)name
: Stringaddress
: String (optional)coordinates
: Embedded Document
latitude
: Numberlongitude
: NumberInvitations Collection:
_id
: ObjectIdtripId
: ObjectId (reference to Trip's _id
)inviteeId
: ObjectId (reference to User's _id
)status
: Enum (Pending, Accepted, Declined)dateInvited
: DateAttendees/Participants Collection:
_id
: ObjectIdtripId
: ObjectId (reference to Trip's _id
)userId
: ObjectId (reference to User's _id
)joinDate
: DateComments/Feedback Collection:
_id
: ObjectIdtripId
: ObjectId (reference to Trip's _id
)userId
: ObjectId (reference to User's _id
)content
: StringdatePosted
: DateNotifications Collection:
_id
: ObjectIdrecipientId
: ObjectId (reference to User's _id
)content
: StringdateSent
: DateisRead
: Boolean
We need well defined data types for the user, location, event, etc.