Coder Social home page Coder Social logo

takenote's Introduction

Take Note

Info

Made by Eric Lie for RFP2202 - FiJ.

Prompt

You will be creating a full-stack application that implements a note-taking application and management system. This application has three main views to show the user: a sortable list of notes, a note viewing page, and a note editing page.

You DO NOT need to complete this test to be considered ready for the TA. (I also don't know what the TA is going to be, so completing this test isn't quite proof of being ready either).

ONLY USE authorized resources while taking this test. (Official documentation, stack overflow). DO NOT reference old code or share test information while taking it for the first time!

Be sure to commit often! Good luck!

BEFORE STARTING

Navigate to this test's root directory and run npm install. Launch mysql service, and seed the database by running the schema.sql file included with this repo. Run npm run build to run webpack. Run npm run server to run the server.

You should be able to see the starter web page.

Level 1

Dynamically Render All Notes from Database

  • [] - Write a GET route on the server.js that gets all notes from the database.
  • [] - Refactor the Notes component in the client/src/components directory to dynamically render notes from the database on page load.

Level 2

Show a Note When Clicked

  • [] - Implement the NoteView component so that it will show a full note when clicked. (Title, category, tagline, note).
  • [] - Add a new view into the App.jsx that will only show the selected note when a note is clicked.
  • [] - Add buttons or icons to the NoteView component that will allow a user to mark thier notes as Hidden or Starred. This operation does not yet need to alter the database. A note cannot be both Hidden and Starred at the same time.

Level 3

Edit a Note

  • [] - Implement the NewNote component so that it will allow a user to enter information about a new note. (Title, category, tagline, note).
  • [] - Adding a note in the NewNote component should also update the list of notes in the Notes component.

Level 4

Add Notes to Database

  • [] - Write an Add Note model function in your server that will add new notes to the database.
  • [] - Write a POST route in your server that adds new notes to your database.
  • [] - Ensure that your client-side only updates the notes list when a POST request successfully writes to the database.

Level 5

Edit Notes

  • [] - Write a PATCH route in your server that will change whether a note is Hidden or Starred.
  • [] - Connect the Hidden and Starred buttons on the client side to your
  • [] - When a note is clicked on the client-side in the NoteView component, allow the user to edit the clicked field. (IE clicking on the title allows the user to change the title.)

Level 6

Filter and Sort Notes

  • [] - Implement a sorting and filtering functionality on the Notes component:
    • [] - User should be able to only see notes that match a certain category.
    • [] - User should be able to see Starred notes at the top of the list.
    • [] - User should NOT be able to see Hidden notes unless a Show Hidden button or checkbox is clicked.

Level 7

View Tracking and Most Frequently Viewed

  • [] - Refactor the schema to keep track of the number of times a note has been viewed.
  • [] - Write a PATCH route that will increment the number of views in your database.
  • [] - Increment a note's view count every time a note is viewed.
  • [] - When listing notes on the Notes component, notes with higher view counts should be shown first.

takenote's People

Contributors

ericjlie avatar jjhuang417 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.