|
2 months ago | |
---|---|---|
.vscode | 2 months ago | |
.yarn/releases | 2 months ago | |
prisma | 2 months ago | |
src | 2 months ago | |
.editorconfig | 2 months ago | |
.env.example | 2 months ago | |
.gitignore | 2 months ago | |
.prettierignore | 2 months ago | |
.prettierrc.json | 2 months ago | |
.yarnrc.yml | 2 months ago | |
LICENSE | 2 months ago | |
README.md | 2 months ago | |
config.ts | 2 months ago | |
docker-compose.yml | 2 months ago | |
nest-cli.json | 2 months ago | |
package.json | 2 months ago | |
tsconfig.build.json | 2 months ago | |
tsconfig.json | 2 months ago | |
yarn.lock | 2 months ago |
README.md
Gallery
Basically, albums with content warning, title, image set, optional description and links(p2)
There are two special kinds of albums, uncategorized and favourites(p4+)
An image can be bound to an album, if it isn't it's in an "unsorted" fake album and has no CW (maybe p3 per image CW). It can have a title, a description, links(p2), and picture metadata(p3)
Additionally (p4+), i can clean image metadata, fix author and such, embed a copyright on the photo, mark photo as favorite(in which case the CW is picked from the album, for each photo), make album "private" (generated access token link), or make it unlisted. I also want to be able to make "album teasers" that would allow people to subscribe to a RSS or mailing list and be notified when it's published; an extension would be patreon support to allow donating users to access those albums before the public release date. I also want an "easy installer" that would basically be a web UI, and a proper packaging of the nodejs program (single bin, hopefully, otherwise compact tar) and if possible, an arch or debian package (since there is a compiled extension at least, argon2id, it's tough)
Featsets
P1: core functionality, MVP
- as a user, i want to display an album
- as a user, i want to display a list of albums
- as a user, i want to display an image
- as an owner, i want to create an album
- as an owner, i want to archive an album
- as an owner, i want to edit an album's metadata
- as an owner, i want to upload one or some images
- as an owner, i want to archive an image
- as an owner, i want to edit an image's metadata
- as an admin, i want to delete all archived data that is older than the selected date, by default 30 days approximately, or a month, depending on what's easiest to do
Data model
Common metadata
- ID (UUID)
- CreatedAt (Timestamp)
- UpdatedAt (Timestamp)
- ArchivedAt (Timestamp)
Image
- title (optional)
- description (optional)
- file (UUID, FK(Image File))
- album (UUID, FK(Album), optional)
Image file
- checksum: sha256 checksum of the image
Album
- title
- description (optional)
- content warning (array)