Skip to content
Andrew Smith edited this page Feb 1, 2015 · 10 revisions

Database Models

The database is implemented with Mongoose.

It has the following collections:

  • User
  • Screenshot

User collection

The user collection has the following key-value pairs:

  • username (String, required)
  • password (String, required) --> Hashed password with bcrypt
  • images (Array) --> Array of screenshots ids that belong to that user. Ex: [23,43,12,4]
  • galleries (Array) --> Array of objects where the key is the name of the gallery and the value is an array of screenshot ids that belong to that gallery. Ex [{TravelPictures: [1,2,3]}, {OtherGallery: [10,21]}]
  • createdAt (Date)

Screenshot collection

The screenshot collection has the following key-value pairs:

  • url (String, required) --> Ex: "http://www.google.com"
  • originalImage (String, required) --> Url of screenshot image without the notes. Ex: http://res.cloudinary.com/detd3ybi4/image/upload/v1422570180/bwiwsfpoldbdes5ruw5x.png
  • annotatedImage (String, required) --> Url of notes image made above the screenshot without the original screenshot as the background.
  • originalImageId (String) --> The public_id property of the file on Cloudinary
  • username (ObjectId, required) --> Id of user that took the screenshot
  • visits (Number) --> Number of visits to that screenshot
  • access (String) --> Only possible values are public or private
  • createdAt (Date)

The images are stored on Cloudinary

Database Seeding

The database is seeding for development environments. Seed data is stored in server/config/seed.js. Currently, it loads 2 sample users and 15 sample screenshots. The screenshots reference extant Cloudinary files.

Seeding the database is called from express.js.

Configuration for which environments will use seeding can be set in the /server/config/environment files. Done by setting seedDB property to equal true.

Clone this wiki locally