-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements for MVP
Giulio Troccoli-Allard edited this page Dec 22, 2020
·
2 revisions
- Laravel Jetstream (Laravel 8, Livewire and TailwindCss)
- preset authentication
- publish all livewire and/or tailwind assets (we're going to use them)
- set up baic phpunit and dusk test
- set up github actions
- Spatie package - Laratrust
- Two roles: Super Admin and Editor
- Create seeder to add test users, with and withut roles
- Build UI to manage user's role (only for Super Admin) (Laratrust comes with it)
- Disable registration
- Allow registration for Super Admin only
- Role cannot be empty.
- Roboto as default
- Actor
- Monserrat
- Spatie package
- Look for free media management UI (may come with package)
- build a customised 404 page (Not Found)
- build a customised 403 page (Not Authorised)
- build a customised generic error page
- Models
- Posts: id, title, text, author_id, photo_id, status, created_at, updated_at, deleted_at, first_published_at
- index: id (PK), author_id, status, created_at
- possible status: draft, published, unpublished
- Posts: id, title, text, author_id, photo_id, status, created_at, updated_at, deleted_at, first_published_at
- Pages
- fonts: Actor for title, Monserrat for body
- single post page (only if status is published)
- homepage with paginated posts (in descending publishing date order, i.e. the latest first published on top) (only for published posts)
- CMS
- Access to only Super Admin and Editors
- List of all posts in descending creation date order, i.e. latest on top
- display: title, first published date, status
- buttons: Edit (if draft or unpublished), Publish (if draft), Republish (in unpublished), Unpublished (if published), Delete (if draft or unpublished)
- One button to create a new post
- Add
- title, text, photo (all mandatory)
- status is draft by default
- the author is the logged in user by default
- Edit
- title, text, photo (all mandatory)
- updates the updated_at field
- Publish
- ask for confirmation
- change status to published (if it was draft or unpublished)
- set updated_at
- set first_published_at (if status was draft)
- Unpublish
- ask for confirmation
- set updated_at
- change status to unpublished (if it was published)
- Republish
- ask for confirmation
- set updated_at
- change status to published (if it was unpublished)
- Delete
- ask for confirmation
- set deleted_at
- Models
- Comments: id, text, author_email, post_id, status, created_at, updated_at, deleted_at
- index: id (PK), author_email, post_id, status, created_at
- possible status: in moderation, published, banned
- Comments: id, text, author_email, post_id, status, created_at, updated_at, deleted_at
- Pages
- font: Monserrat
- add list of published comments in single post page
- add form to the single post page
- display: text, email
- save with status in moderation by default
- CMS
- Access to only Super Admin and Editors
- List of all comments in descending creation date order, i.e. latest on top
- display: text (maybe first 100 chars only), creation date, updated date, status
- buttons: Review (if in moderation), Approve (if in moderation), Ban (if in moderation)
- Review
- show modal with full comment and button Approve, Ban, Keep
- Keep
- do nothing (just close the modal)
- Approve
- ask for confirmation
- change status to published (if in moderation)
- set updated_at
- Ban
- as for confirmation
- change status to banned (if in moderation)
- Models
- Tags: id, slug, name, created_at, updated_at, deleted_at
- index: id (PK), slug (unique)
- TagsPosts: tag_id, post_id, created_at, updated_at, delete_at
- Tags: id, slug, name, created_at, updated_at, deleted_at
- Pages
- add tags to single post page
- add tags to post on homepage
- CMS
- modify Post CRUD to allow adding/removing tags (not mandatory)