Giter Club home page Giter Club logo

web-chords-to-pdf's Introduction

Web Chords to PDF

Explanation.png This program gets a list of URLs and produces a chords songbook.
It supports the following sites:

The Story

I used to rely on printed guitar chord sheets for quite a while until I had a realization: we're living in the 21st century, after all!
Instead of carrying around a tiny ring binder filled with carefully chosen song pages in my guitar case, only to struggle with them on a windy day outside, I discovered a simpler solution. I decided to switch to using a screen!
Initially, I considered using an e-reader, but later realized that a tablet screen would be even more convenient due to its responsiveness.

Project structure

Structure.png

web-chords-to-pdf's People

Contributors

naftali10 avatar

Watchers

 avatar

web-chords-to-pdf's Issues

Bad chord transpose

Chords are not it the right alternation:
DecembeRadio - Drifter
Celine Dion - Im Alive
Tic tac toc

Sharper titles

Take care of weird title font (scaled up title images)

TAB4U

Support TAB4U site

  • Align to right
  • Reverse Hebrew text

Data reuse

  • Enable loading webpages offline
  • Save raw data into database for faster information extraction
  • Enable re-generating PDFs with newly added songs

Clean Code

Go over all of the code and adapt it for cleanness.

  • Refactoring
    • Site -->Webpage
    • Site name --> Domain
    • Chords list --> Songbook
    • Song line --> Line
    • Song line list --> Song
  • New repository name
  • Readability
  • Maintainability
  • Consider using getitem and len on container like classes
  • Make Line class a linked list
  • Decoupling
  • TODOs & FIXMEs
  • Insert tests while refactoring (TDD, unittest, unittest.mock.patch)

WebDriver reuse

Open one or several main WebDriver browsers and reuse them to get new webpages instead of opening new webdrivers and killing them every time.

README upgrade

  • Screenshot scheme that explains the system in a single glimpse
  • Structure image
  • More readable story

Class restructure

PDF chord writer has:

Chord site list has:

Chord site (UG/TAB4U) has:

Song line list has:

Song line

CSV

Use CSV instead of URL list as an input for the program.
This will shorten the process of bringing data from Notion.

Line wrapping

Wrap long lines

  • Write wrap_line function in SongLineList class
  • Write a function that checks if a wrap is needed, in MyCanvas class
  • Use the above in write_text function of MyCanvas class
  • Make sure that whitespaces are preserved when wrapping
  • Align chord line wrapping with lyrics line wrapping

Edge Browser

Move back to using Selenium WebDriver with Microsoft Edge instead of Google Chrome.
Verify it doesn't degrade performance.

Advanced Python

Use the following syntax fetures:

  • Decorators @
  • Return type ->
  • Type declarations
  • Context manager ('with' keyword)

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.