[x] Is the first page you see upon entering the wiki
[x] Contains a welcome message
[x] Contains a link/placeholder for a link to the live page
[x] All links in the right sidebar should contain each wiki page and link to the correct page
[x] Correctly formatted
[x] each wiki page is listed in bullet points
[x] all links route the correct page
Comments
MVP List
[x] Should have 7 MVPs.
[x] 3 of those are User Auth, Heroku, and Production README.
[x] The other 4 are from the MVP List or they have clarified them with you
[x] Contains a description sentence of the app
[x] Includes two to three detailed bullets on functionality and presentation of feature
[x] At least one CRUD feature, which states what CRUD operations are planned (creation, reading, updating, deletion)
[x] Estimates how long it will take the code each MVP
[x] Correctly formatted
[x] MVPs are listed in an ordered list
[x] Each MVP is broken down into bullet points
Comments
Since the bulk of functionality on twitch is videos plus live chat, I would recommend tackling those MVPs first (after auth). I'd recommend doing:
User auth
Videos
Messaging
Live Chat (integrating action cable to "broadcast" new messages so they live update on their own)
Dashboard and profile
Bonus: Livestream videos
Bonus: follows
[x] for Messages, the bullets would say that users can create a message, users can view messages, etc
Database Schema
[x] Contains correct datatypes
[x] Contains appropriate constraints/details
[x] primary key
[x] not null
[x] unique
[x] indexed
[x] foreign key
[x] Contains bullet points after the table that state which foreign keys will reference to which table, or references to the associations which will be made
[x] foreign key and table name are lowercased, snake_cased and back_ticked
[x] Correctly formatted
[x] schema is written in a table format
[x] the table's name are lowercased, snake_cased and back_ticked
[x] the table header column names are bolded
[x] columns names are lowercased and snaked_cased and back_ticked
Comments
We can remove follows column on channels table and just calculate that in jbuilder whenever we need the total follower count into
[x] Add messages table
[x] rename message column on messages table to be something like body (prevents confusion down the road when dealing with a message and having to say something like message.message
Sample State
[x] State shape is flat!
[x] State's keys are camelCased
[x] All keys within the values in the state are accessible in the schema
[x] Correctly formatted
[x] Sample state is rendered with triple backticks, and the language ```javascript...```). This will display the state as a code block instead of a giant line of text
[x] Top level slices
[x] entities
[x] session
[x] errors (here or in ui)
[x] ui (if needed)
[x] Should NOT have nested slices, aka comments inside of posts
Some info from other tables is ok, for instance:
the author username and imageurl for a post. basically any info that the user can't change
like count and a boolean on whether the user likes the post instead of a likes slice
Comments
[x] I will re-review this after we nail down your mvps and schema changes
[x] Add messages slice of state
Backend Routes
[x] Contains the following sections: HTML, API Endpoints(Backend)
[x] Each route has a description
[x] API Endpoint routes contains wildcard variables written in snake_case
[x] Have API routes that will allow the front end to get all info it needs and does not have unneeded routes:
probably doesn't need a GET likes api endpoint because that info comes through the post show
Comments
[x] Add routes for messages (won't need livechat since your table will be called messages)
[x] Add POST route for clips so logged in users can upload clips
Frontend Routes
[x] Frontend routes contains wildcard variables written in camelCase
[x] Correctly formatted
[x] Routes are displayed with inline coding text (backticks)
Comments
If you want to use clip title in the url to show a clip, you'll want to make the title on your clips table unique so you don't run into problems with clips with the same title. To use username and clipname as wildcard variables in your frontend routes, you'll also want to update how you do state shape so that user items are nested under their username instead of under their id and you'll want to nest clips under their title instead of their id. In general, I would recommend sticking with using ids in the frontend routes and maintaining the state structure we teach. After you feel really comfortable with reduct and react router, you could get fancy with your routes and state like twitch if you so desire!
Wiki Page Home
Comments
MVP List
Comments
Database Schema
back_ticked
back_ticked
back_ticked
Comments
follows
column onchannels
table and just calculate that in jbuilder whenever we need the total follower count intomessages
tablemessage
column onmessages
table to be something likebody
(prevents confusion down the road when dealing with a message and having to say something likemessage.message
Sample State
```javascript...```
). This will display the state as a code block instead of a giant line of textentities
session
errors
(here or inui
)ui
(if needed)comments
inside ofposts
Comments
messages
slice of stateBackend Routes
snake_case
GET likes
api endpoint because that info comes through the post showComments
messages
(won't needlivechat
since your table will be calledmessages
)POST
route forclips
so logged in users can upload clipsFrontend Routes
camelCase
inline coding text
(backticks)Comments
title
on yourclips
table unique so you don't run into problems with clips with the same title. To useusername
andclipname
as wildcard variables in your frontend routes, you'll also want to update how you do state shape so that user items are nested under theirusername
instead of under theirid
and you'll want to nest clips under theirtitle
instead of theirid
. In general, I would recommend sticking with using ids in the frontend routes and maintaining the state structure we teach. After you feel really comfortable with reduct and react router, you could get fancy with your routes and state like twitch if you so desire!