Repository navigation
Models
These models are accurate as of 3/04/22. All models have an _id attribute autogenerated by MongoDB.
This contains the ID generated by Firebase used for authentication, as well as the User's details and a list of the object IDs representing the Persons and Encounters associated with this User account.
auth_id: { type: String, required: true },
first_name: { type: String, required: true },
last_name: { type: String, required: true },
persons: { type: [mongoose.Types.ObjectId] },
encounters: { type: [mongoose.Types.ObjectId] },
goals: { type: [mongoose.Types.ObjectId] },
companies: { type: [mongoose.Types.ObjectId] },
This contains the Person's general details, how they relate to the User, the list of Encounters that include this Person and the time the last edit was made.
first_name: { type: String, required: true },
last_name: { type: String, required: false },
birthday: { type: Date, required: false },
gender: { type: String, required: false },
location: { type: String, required: false },
importance_level: { type: Number, required: false },
first_met: { type: Date, required: false },
how_we_met: { type: String, required: false },
interests: { type: [String], required: false },
labels: { type: [String], required: false },
organisation: { type: String, required: false },
social_media: { type: Map, of: String, required: false },
image: { type: Buffer, required: false },
encounters: { type: [mongoose.Types.ObjectId], required: false },
companies: { type: [mongoose.Types.ObjectId], required: false },
time_updated: { type: Date, default: new Date(Date.now()), required: true },
This contains the general details about this Encounter, the time it was last updated and the Persons involved.
title: { type: String, required: true },
date: { type: Date, required: false },
time_updated: {
type: Date, default: new Date(Date.now()), expires: 31536000, required: true,
},
location: { type: String, required: false },
latLong: { type: [Number], required: false },
description: { type: String, required: true },
persons: { type: [mongoose.Types.ObjectId], required: true },
This contains the goal details such as the start and end date and number of encounters to reach.
date_start: { type: Date },
date_end: { type: Date },
duration: { type: String, required: true },
encounter_goal: { type: Number, required: true },
recurring: { type: Boolean, required: true },
Details for the company including the date founded, description and ids of people employed.
name: { type: String, required: true },
location: { type: String, required: false },
description: { type: String, required: false },
date_founded: { type: Date, required: false },
time_updated: { type: Date, default: new Date(Date.now()), required: true },
image: { type: Buffer, required: false },
persons: { type: [mongoose.Types.ObjectId], required: false },
The Basics:
The Team:
The Frontend:
The Backend: