saipat/Eton

Proposal

Closed this issue · 3 comments

Wiki Page Home

  • Is the first page you see upon entering the wiki
  • Contains a welcome message
  • Contains a link/placeholder for a link to the live page
  • All links in the right sidebar should contain each wiki page and link to the correct page
  • Correctly formatted
    • each wiki page is listed in bullet points
    • all links route the correct page

Comments


MVP List

  • Should have 7 MVPs.
    • 3 of those are User Auth, Heroku, and Production README.
    • The other 4 are from the MVP List or they have clarified them with you
  • Contains a description sentence of the app
    Includes the following list for the 4 app specific MVPs:
    • Adequate styling
    • Smooth, bug-free navigation
    • Adequate and appropriate seeds to demonstrate the feature
  • At least one CRUD feature, which states what CRUD operations are planned (creation, reading, updating, deletion)
  • Estimates how long it will take the code each MVP
  • Correctly formatted
    • MVPs are listed in an ordered list
    • Each MVP is broken down into bullet points

Comments


Database Schema

  • Contains correct datatypes
  • Contains appropriate constraints/details
    • primary key
    • not null
    • unique ( 1) You added a unique constraint on the name of a notebook. That means a name of "cat names" can only show up once on the table. Is that you wanted? 2) There are some other opportunities to add uniqueness to your tables :) do you see them? )
    • indexed
    • foreign key
  • 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
  • Correctly formatted
    • schema is written in a table format
    • the table's name are back_ticked
    • the table header column names are bolded
    • columns names are lowercased and snaked_cased and back_ticked

Comments

  • Do you mean sessiontoken or session_token?

Sample State

  • State shape is flat!
  • State's keys are camelCased
  • All keys within the values in the state are accessible in the schema
  • Correctly formatted
    • 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
    • Top level slices
      • entities
      • session
      • errors (here or in ui)
      • ui (if needed)
    • 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


Backend Routes

  • Contains the following sections: HTML, API Endpoints(Backend)
  • Each route has a description
  • API Endpoint routes contains wildcard variables written in snake_case
  • Routes does not contain superfluous routes
  • 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

  • /api/notes/tags/:tag_id can be changed to /api/tags/:tag_id!
  • same as above for GET /api/notes/notebooks/:notebook_id
  • how does a user create a new tag?

Frontend Routes

  • Frontend routes contains wildcard variables written in camelCase
  • Correctly formatted
    • Routes are displayed with inline coding text (backticks)

Comments

Great start on the proposal :) You have put in a lot of thought! We have some changes to do. I will check for updates on your proposal some time tomorrow! Thanks Sai!

Friendly Reminders:

  • This is the only github issue where I will be marking the check boxes :) All the other github issues, you'll be checking off boxes!
  • Please reach out here (this Github issue) if you have any further questions!

Hi Cynthia,

the reason I don't have a create tag is because the user cannot create a tg without creating /editing a note. So, My idea is that whenever a user creates/edits a note, i will check for the tagId. if there is one, I will the tag value add it to the tags_notes join table, else, i will add null.

I have a doubt on this one "/api/notes/tags/:tag_id can be changed to /api/tags/:tag_id" - Since I am not writing a route for the create tag, if I want to access all the notes for a specific tag, I need notes in my routes like /api/notes/tags/:tag_id right? and the same idea for the notebooks too.

For the Backend Routes, I don't have GET likes api endpoint in my routes.

And I will read about React Quill. I wanted to show the preview of the user notes and let the user search by their preference(either in rich text or by plain text). I will do my research on that.

Finally, shall I start my project with what I have now?

Done :)! 💯