Git Product home page Git Product logo

code-journal's Issues

User can edit an entry

๐Ÿ’ฐ Motivation

If a user makes a mistake when creating an entry or wants to add more notes to an entry, they should be able to edit it.

๐Ÿ“ Plan

Allow users to select an existing entry to edit and pre-populate its information into the form.

๐Ÿ–ผ๏ธ Wireframes

user can edit an entry mobile
user can edit an entry desktop

โœ… Task List

  • Update entry rendering function to include an edit icon for each rendered entry.
  • Ensure that each rendered entry is given a data-entry-id attribute indicating which entry it is.
  • Listen for clicks on the parent element of all rendered entries.
  • Show the entry form if an edit icon was clicked.
  • Find the matching entry object in the data model and assign it to the data model's editing property if an edit icon was clicked.
  • Pre-populate the entry form with the clicked entry's values from the object found in the data model.
  • Update the entry form's submit handler function to conditionally add a new entry object or update the existing one.
  • Update the entry form's submit handler function to conditionally add a new entry DOM tree or replace the existing one.
  • Remove all CSS styling that had no affect or was otherwise unnecessary.
  • Test all functionality again in a private browsing session.
  • Fix all errors.

User can delete an entry

๐Ÿ’ฐ Motivation

If a user decides that they no longer wish to keep an entry, they should be able to delete it.

๐Ÿ“ Plan

Allow users to delete an entry from its edit screen.

๐Ÿ–ผ๏ธ Wireframes

user can delete an entry mobile
user can delete an entry desktop

โœ… Task List

  • Add a click target for deleting an entry to the entry form that only appears if the user is editing an entry.
  • Show a confirmation modal when the user clicks the Delete Entry click target.
  • Hide the modal if the user clicks Cancel.
  • Remove the entry from the data model and the entry's DOM tree from the page if the user clicks Delete.
  • Show the Entries list if the user clicks Delete.
  • Remove all CSS styling that had no affect or was otherwise unnecessary.
  • Test all functionality again in a private browsing session.
  • Fix all errors.

User can view their entries

๐Ÿ’ฐ Motivation

Once a user records some journal entries, they'll want to see them.

๐Ÿ“ Plan

Display the user's journal entries in reverse chronological order so they can see the newest ones first.

๐Ÿ–ผ๏ธ Wireframes

user can view their entries mobile
user can view their entries desktop

โœ… Task List

  • Add a sibling div[data-view="entries"] to the HTML.
  • Add an empty unordered list to the div[data-view="entries"] element in the HTML.
  • Add some dummy journal entries to the unordered list in the HTML and style them to match the wireframe.
  • Check that the entries list looks good on both mobile and desktop screens.
  • Define a function that takes a single journal entry object and returns a DOM tree that matches one of the example entries in the HTML.
  • Use a loop to create a DOM tree for each journal entry in the data model and append it to the page when the 'DOMContentLoaded' event is fired.
  • Remove the example HTML entries once the user's entries are successfully being appended to the DOM on page load.
  • Add a navigation item to the navbar for Entries.
  • Add an anchor to the entries view that shows the entry form.
  • Ensure that submitting a new journal entry also creates a new DOM tree for it and adds it to the page.
  • Ensure that submitting a new journal entry automatically shows the 'entries' view without reloading the page.
  • Ensure that refreshing the pages shows the same view as before refreshing.
  • Clean up all unnecessary styling.
  • Test the app some more in a private browsing tab.
  • Fix all errors.

User can create an entry

๐Ÿ’ฐ Motivation

Coders will want to capture tidbits they pick up during their research.

๐Ÿ“ Plan

Create a responsive form that allows users to store an image URL with some notes about a specific topic.

๐Ÿ–ผ๏ธ Wireframes

user can create an entry mobile
user can create an entry desktop

โœ… Task List

  • Add a div[data-view="entry-form"] to the HTML.
  • Add a form for creating a journal entry to the div[data-view="entry-form"].
  • Ensure that the form looks nice on both mobile-sized and desktop-sized screens.
  • Make all inputs of the journal entry form required.
  • Listen for 'input' events on the photoUrl input to update the src attribute of the photo preview when the input value changes.
  • Listen for 'submit' events on the journal entry form and:
    • Put the form's input values into a new object.
    • Add the nextEntryId to the object.
    • Increment the nextEntryId on the data model.
    • Prepend the new object to the entries in the data model.
    • Reset the image preview's `src' attribute.
    • Reset the form inputs.
  • Verify that new entries are saved to local storage along with the rest of the data model on page reload.
  • Verify that each new entry receives an incrementing entryId.
  • Remove all CSS styling that had no affect or was otherwise unnecessary.
  • Test all functionality again in a private browsing session.
  • Fix all errors.

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.