MattB09 / highlights_catalogue

MyLights is a web app that lets you manage and catalogue your highlighted passages from different books you've read. You can categorize each highlight with zero or many tags and filter highlights based on author, book, or tag.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

link to site Mylights Logo

MyLights

MyLights is a web app that lets you manage and catalogue your highlighted passages from different books you've read. You can categorize each highlight with zero or many tags and then filter the highlights based on author, book, or tag. You can create any tag you like. You can also search your highlights using the search bar.

Users each have their own account. If you'd like to check out a demo account, just send me a message!

Landing page Landing page

Single page app Screenshot of whole page

Filter on author, book, or tag Filtering

Modal forms so you never have to leave the page Modal forms

How to use the app (for users)

Visit the url: https://highlights-catalogue.herokuapp.com/ and sign up with email and password. Start adding your authors, books, tags, and highlights! If you're a kindle user there's two ways to access your highlights and notes by book.

  1. Log into your kindle account at https://read.amazon.com/notebook. From there you can see your highlights and notes by book.
  2. In your kindle, go to a book and open the menu. There's an option to send yourself the highlights by email. The email will contain both pdf and csv files with your highlights.

I like to add the highlights to the app one by one, which is my way of reviewing the book and reflecting on what I've read.

Upcoming features

  • Upload kindle csv file to bulk upload highlights.
  • Login with google account

How to download the app (for developers)

  1. Clone the repo and npm install
  2. Create a local postgres database (for local testing)
  3. Create a .env file
    1. Define your .env variables DB_USER, DB_PW, DB_NAME.
    2. Make sure .env is in .gitignore
  4. Run knex migrate:latest to create the database schema and knex seed:run filename for each file in the seed folder. (This will also need to be done for the production version. i.e. if using Heroku postgres in production, run the same commands in the Heroku command line)
  5. Use npm run dev to run the backend server in hot-reload mode.
  6. Use npm run hack to start the front end server in hot-reload mode.
  7. Hack away!

Technology used

  • Postgres Database
  • Knex for database migrations, seeding, connections
  • NodeJS and Express server for backend with RESTful API
  • React front end
  • Firebase for authentication

Database schema

Database Schema

About

MyLights is a web app that lets you manage and catalogue your highlighted passages from different books you've read. You can categorize each highlight with zero or many tags and filter highlights based on author, book, or tag.


Languages

Language:JavaScript 89.1%Language:CSS 8.2%Language:HTML 2.8%