diff --git a/Folders-etc.md b/Folders-etc.md index 7fcc3dd..41bb372 100644 --- a/Folders-etc.md +++ b/Folders-etc.md @@ -29,12 +29,13 @@ Author-specific - opening a link for a non-existant folder should trigger a 404 - a brew should be able to be in multiple folders at once - folders can have subfolders of their own -- no duplicate names for folders inside the same account +- no duplicate names for folders inside the same account + - ... or at least, within the same folder space — thus two separate folders could each contain different subfolders both named "drafts" - folder should appear in the brew title inside the share and edit pages("Examples: how to make tables") - folders should appear before any brew in the user page -A URI/link should be `/user/:userId/:folderName` +A URI/link chould be `/user/:userId/:folder-slug` ### Data Model @@ -51,16 +52,15 @@ Sub-folders are linked via a list of subfolderIds, in the same manner as how bre - `__Id` (mongo specific ID field, exists wether we create it or not) - `folderId` (nanoid, required, auto) - `slug` (to use in the URL) (string, required) +- `displayName` (to display in the UI) (string, required) - `owner` - `brewIds` (list of shareId) -- `createdAt` (auto) +- `CreatedAt` (auto) - `UpdatedAt` (auto) #### More substantial data structure ![ERD of folders, users, and brews](https://github.com/naturalcrit/homebrewery/assets/2605467/03b4a90b-3c7f-4923-91db-dc77264473fd) - - These folders should be displayed in the user page of the author of such folder , opening the folder would bring the user to another page with the content of the folder displayed as if it was a user page. So all unpublished files will still be invisible to unauthored accounts, even if they are inside a publicly viewable folder. @@ -76,28 +76,23 @@ are private folders publicly viewable? - thumnails - tags -- views (useless?) +- view counts (useless?) - systems - description - brewCount -- put someone else's brews into your folder +- put someone else's brews into your folder (e.g. faves, bookmarks, public resources) - folders inside folders? - move brews from folderA to folderB - ability to hit a button to publish all brews inside - folder password -- folder object could also have a link to a parent-folder (preferable to a list of contained-folders, to avoid loops etc) - -- select via a picker UI (not by typing strings) -- store mongoids in codefenced block - store in the brew itself?? +- select via a picker UI (not by typing strings, unless we support type-ahead magic) - smart and dumb folders - additional properties - plausible deniability if bad password or no password (give me access or give me death aka 404) -The brew metadata panel and folder picker UI should only show the folders belonging to that user, but also maintain back-end the other user's folder assignments. +The brew metadata panel and folder picker UI should only show the folders belonging to that user, but also maintain back-end the other user's folder assignments. The associating link between brew and folder is not maintained within the brew itself, but in the folder entity. - - -We do want to facilitate sharing of folder views. That is, a user could share `/user/erics/friday-game` to his Friday Game participants; or share publicly `/user/erics/monsters` to the world (although that might be better served as /user/erics?tags=monsters). +We do want to facilitate sharing of folder views. That is, a user could share `/user/erics/friday-game` to his Friday Game participants; or share publicly `/user/erics/monsters` to the world.. ### Data structure