Giter VIP home page Giter VIP logo

francislangit / bookly Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 791 KB

A book-tracking web-application where users can save and log books. Built on HTML5, CSS, and vanilla JavaScript, with a utilization of the Web Storage API's localStorage mechanism.

Home Page: https://francislangit.github.io/bookly/

License: MIT License

HTML 23.96% JavaScript 69.36% CSS 2.82% SCSS 3.86%
web-application webapp html css javascript vanilla-javascript vanilla-js html-css-javascript books booktracker

bookly's Introduction

Francis's GitHub stats

bookly's People

Contributors

francislangit avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

bookly's Issues

Set up user authentication with Firebase

User authentication will be integral to the data cloud storage features of the application. We'll set such up with Firebase, Google's back-end SDK.

  • Allow users to sign-in and sign-out of the website.
    • If user logged out, have "Sign In" button that opens up Google's sign in pop up.
    • Else, have a "Sign Out" button that signs the user out of the website.
  • Page should display the state of authentication. Greeting if signed in. Signed out message if signed out.
  • User must remain signed in even if page is reloaded or closed. They are only to be signed out if they explicitly do so.

Construct skeleton of website

Before we construct Bookly's cloud storing features, we must create a skeleton for it's back-end to utilize. In doing so, we'll be creating the following:

  • library array, of which will hold user's Book objects.
  • Book object to represent each book that a user can store in their library. Has the following attributes:
    • Required
      • Title
      • Author
      • Read (Boolean)
    • Optional
      • Link to Cover Photo
      • Pages
      • Publisher
      • Publication Year
      • ISBN
      • Language
  • addBook() function that adds Book objects to library array.
  • displayBooks() function that displays all Book objects in library array on web page.

After doing such, we'll need to make an MVP front-end. Make it such that all books currently in initialized Library object are displayed.

Prepare repository and website for publicity

While the features of the project are functional, it'll be best to add a bit more to it such that it polished well enough to show to the public.

  • Create a section in the website containing the following:
    • Short description of Bookly.
    • Link to GitHub repository.
    • Link to The Odin Project prompt.
    • License and copyright.
  • Record a GIF for usage section of the README.md.
  • Create a banner for the project's README.md and its GitHub social image.
  • Fill up the README.md of the project's GitHub repository.

Implement local storage features

As of current, when app is reloaded, all books added by user disappears for the user interface. To fix this, we'll implement the usage of the localStorage API. Such allows users to store the books they've saved locally.

Create book manipulation features

Create features allowing users to add and remove books from their library using the web page's user interface. Such need not be styled, just functional.

  • Add a "New Book" button.
    • Brings up a form where users fill out details of the Book object they'd like to add to their library.
    • Form will follow attributes in constructor of Book class. Required attributes will be required on the form. Others will be optional.
  • Add a "Remove" button on each Book object's display. Such will remove Bookobject from library array.
  • Add a "Read" button to each Book object's display. Toggling such will change the read attribute of the Book object.

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.