// users
// * our site requires authentication...
// * so users have a username and password
// * they also can have 0 or more diaries
var userSchema = new mongoose.Schema({
email: {
type: String,
unique: true,
required: true
},
diaries: {type:[diarySchema]},
hash: String,
salt: String
});
// * Diaries are required to have a unique name
// * Diaries are composed of entries
var diarySchema = new mongoose.Schema({
name: {
type: String,
unique: true,
required: true
},
entries:{type:[entrySchema]}
})
// * Entries are required to have a unique title
// * Entries contain 0 or more images
// * permission must be set to public or private
var entry = new mongoose.Schema({
title: {type:String, unique:true; required:[true, '{PATH} is required']},
images: {type:[entryImageSchema]}
permissions: {type:String, required:[true, '{PATH} is required']},
});
// * Images are required to have a url
var entryImageSchema = new mongoose.Schema({
url: {type:String, required:[true, '{PATH} is required']},
});
/home -homepage where users can choose to register or login
/home/contact -contact form to send a message to developers
/home/login -user login
/home/register -user register
/home/username -userpage is displayed when user is authenticated.
/home/username/entry -entry is displayed when user selects an entry from their userpage
/home/username/create -create is a form to create a new entry
/home/username/explore -explore public posts from other users