A one-stop app to manage and organize your daily reading habits!

Overview

Reading Tracker with Local Authorization

This is a place where you can write down all the books you plan to read, are currently reading, have finished reading... or gave up on reading, because it was just that bad.


No longer will you have to say "That looked like an interesting book. I wish I could remember what it was called..." Now you can add it to the list! Or check your list and see you already had it planned. Or have already read it. Or already tried reading it and dropped it - and put it on this list so you wouldn't be fooled by it again!

Includes local authorization, so you don't have to download anything and no one else can see your list and judge you for your tastes.

Try it out: My Book List

Screenshot (304)

How It's Made:

Tech used: HTML, CSS, JavaScript, Node.js, MongoDB

Packages/Dependencies used: bcrypt, connect-mongo, dotenv, ejs, express, express-flash, express-session, mongodb, mongoose, morgan, nodemon, passport, passport-local, validator

This program uses a local Passport solution to keep users' book lists separate.

Once users have logged in (or signed up, if they are first-time users), they are directed to their list of books. Those who are not logged in can only access the login or create account pages.

In their book list, users can add titles to their list along with specified genre and a status (Plan to read, Currently reading, Finished, or Abandoned). Users can also change the status of a book in their library (from Plan to read to Currently reading, for example, or from Currently reading to Abandoned). And, of course, users can delete titles from their list.

All of the list storage and management is handled with Mongoose and MongoDB. Rendering out the lists is done with EJS, along with some static CSS to make things not hideous, and client-side JavaScript to handle button functionality.

Optimizations

Make no mistake, this is a pretty good Minimum Viable Product for less than one day of build time. That said, it's bare bones. Given more time, we would implement some of the features we tabled due to time crunch:

  • Connection to a books API to provide additional functionality (e.g., an autocomplete search bar for adding titles) and design features (e.g., display of book covers)
  • The ability to sort the book list by status
  • Additional data fields for each book beyond title and status (e.g., genre, author), which the list could also be sorted by
  • Page numbers for Currently reading and Abandoned titles, so users can see where they are/where they finally couldn't put up with the author anymore
  • A notes field for Currently reading and Abandoned titles, where users can store favorite quotes, ideas sparked by their reading, or grievances about terrible books
  • The ability to add ratings to Finished titles
  • And more!

Lessons Learned:

This was easier than we expected. Passport and Mongoose do a lot of the heavy lifting.

Coding this as a group was also surprisingly effective. Rather than being a case of "too many cooks spoil the broth," we would each catch issues the others would miss and could cover for each others' weaker points. Although the asynchronus features of git probably offer a more powerful approach to collaboration, as a group of developers still getting a handle on some of the tech and working with very limited time, replit was king.

If you want to run this code yourself:

In addition to running npm install or putting this code in a cloud provider of your choice, you'll need a database to put this data in, and a connection to that database.

To do this locally:

  • Create a .env file and add the following as key: value
    • PORT: (can be any port, example: 3000)
    • DB_STRING: your database URI

Doing this on a cloud provider will vary between providers (and presumably between UI updates.)

You might also like...

In this project I have build a To Do List app that you can list, add, delete and manage your daily tasks better. Build with HTML, CSS, JS, ES6, JSON

ToDo List This project is build by javascript web packages which can add and remove daily tasks. Built With Html Css Javascript Sublime Text Author 👤

Oct 25, 2022

App to manage maintenance calls. App to manage maintenance calls. This application was created for the purpose of studies.

App to manage maintenance calls. App to manage maintenance calls. This application was created for the purpose of studies.

App to manage maintenance calls. App to manage maintenance calls. This application was created for the purpose of studies.

Dec 26, 2022

Simple yet powerful to-do list app to manage your daily tasks! Built with: CSS, HTML, JavaScript

Simple yet powerful to-do list app to manage your daily tasks! Built with: CSS, HTML, JavaScript

To-Do List Simple yet powerful to-do app to manage your daily tasks! Built With HTML, CSS Fameworks: N/A Technologies: Linters, Git, GitHub, Webpack L

Jul 21, 2022

A simple to-do list application that helps to organize your daily tasks and keep track of the task you have completed and the task you are yet to have completed, and also deleting the completed task leaving those yet to be completed.

A simple to-do list application that helps to organize your daily tasks and keep track of the task you have completed and the task you are yet to have completed, and also deleting the completed task leaving those yet to be completed.

To-Do-List A To-Do-List App helps users to get their task cordinated and organised. This project is from microverse javascript curriculum which tests

Jul 8, 2022

The website which can help you to organize your daily or weekly activities and review them when you need them. you can add, remove and delete an activity

To Do list To do project is webpack project that list activities someone can do at a specific time In this TO-DO list, you can add or remove you activ

Jul 21, 2022

One-stop Go+ programming language environment manager

One-stop Go+ programming language environment manager

InGop (Go+ language) One-stop Go+ programming language environment manager How do I learn the Go+ programming language quickly? Start with installatio

Nov 21, 2022

Todo List is a simple web-based application that gives users the ability to organize their work and life daily tasks. Built with JavaScript, HTML/CSS.

Javascript Project Todo List Using Javascript to create a simple Todo List project. Populating the todo list and then removing from the list. Built Wi

Sep 28, 2022

This app helps manage a bookstore. It comes in handy when you need to manage a personal book store or library. Entirely built on es6.

This app helps manage a bookstore. It comes in handy when you need to manage a personal book store or library. Entirely built on es6.

Awesome Books A Microverse project on learnong javascript. Additional description about the project and its features. Built With HTML5 CSS3 Javascript

Apr 22, 2022

A to-do list website task by (@microverseinc), you can easily manage your daily tasks

A to-do list website task by  (@microverseinc), you can easily manage your daily tasks

To DO list Is a website to manage daily tasks Built With HTML,CSS,JS webpack Live Demo (if available) Live Demo Link Getting Started This is an exampl

Oct 22, 2022
Owner
Nathan Folkman
| Software Engineer @ 100Devs | Looking to break into the green-tech space. Let's build a brighter, more equitable future together! 🌐
Nathan Folkman
Firefox Extension for Smart Reading - Bionic Reading

Smart Reader - Bionic Reading Smart Reader or Bionic reading is a way to keep our focus on the web. The fact that the beginnings of words are bolded,

Poucous 27 Dec 17, 2022
ToDo list app is a simple web app that helps you organize your day, by adding, checking and deleting daily tasks

TODO List App "To-do list" is a WebApp tool that helps to organize your day. It simply lists the tasks that you need to do and allows you to mark them

Adel Guitoun 8 Oct 18, 2022
Habitapp is a simple app that helps you build positive habits, measure progress and achieve your goals

habitapp Habitapp is a simple app that helps you build positive habits, measure progress and achieve your goals. ✨ Features Working without registrati

null 6 Sep 11, 2022
Read without losing the plot. Well Read helps you organize your notes about books you're reading, so you're never lost when starting a new volume.

Well Read Well Read is a website for tracking your reading of long book series. I made this to track how many pages I read in a session and to better

null 3 Dec 15, 2022
To Do List Application Organize your tasks with simple add and delete functionality. Organize your items with ease.

TODO-LIST To Do List Application Organize your tasks with simple add and delete functionality. Organize your items with ease. Additional description a

Steve 12 Jul 22, 2022
🌹 Your one stop place for moderation and more.

Azalea Azalea is a advanced moderation bot used. This repo includes, the discord bot: Moderation, server stats, welcome & leave, reaction roles, auto

Saige 2 Sep 13, 2022
radiQL, your one-stop-shop for migrating from a legacy REST backend to an efficient and modern GraphQL API

Welcome to radiQL, the one-stop solution for setting up GraphQL on a PostgreSQL database. Check out our Medium article here. At A Glance: Give us your

OSLabs Beta 90 Nov 14, 2022
Dev Care - One stop solution to take care of your health as developers

Dev Care: One stop solution to take care of your health as developers ??‍?? One-stop solution to take care of your health as developers. Dev Care will

null 44 Dec 13, 2022
To-Do List is a simple web based application that gives users an opportunity to note and organize their daily tasks. This app is built with JavaScript, HTML/CSS.

Project Name To-Do App Live Demo About Project In this feature, I built a to do list app which helps to list the tasks to be done at a particular time

Hatim Eddinani 8 Aug 18, 2022