Short and Simple

Created NodeJS application for cataloging, displaying, updating, and modifying Comics

Sought way to read comics on a plethora of devices all synced back to some master server to keep track of read and unread comics

Decided on creating a NodeJS application to manage the backend

Application uses numerous modules in order to achieve these goals

Application is accessiable via any device with a webbrowser


Demo: ( currently not working)

Lengthy Explanation

Alright so this project really just stems down to my desire to read comics on various devices. I've used various apps in the past but they all seem to become discontinued forcing me to find a new application. After the third time this happened I decided I was getting tired of moving all my data from application to manually.

To start off this application deals with comics such as the one below.

The main purposes of the application are to the users are:

  • provide a catalog of comics in an internal database
  • provide links to comic chapters/pages
  • allow users to favorite comics to keep up with new releases

To these ends I've used various modules to fulfill these needs which I'll list below as well as their use

  • Express
    Pretty much the backbone of the application, it provides a fast framework for nodejs
  • Ejs
    Embedded Javascript templates, used to build the frontends the user will see
  • Mongoose
    Module that manages connections to mongo daemon
  • Passport-google-oauth
    Login manager which deals specifically with google logins, its much safer to just use google login tokens than requiring users make passwords and expect me to keep them safe
  • Nightmare
    This is the web scraper I decided to use, its pretty much a module that creates an instance of electron, and then sends it commands
  • JIMP
    Stands for Javascript Image Manipulation Program, a riff on GIMP, it does simple image manipulation for me, in instances where I want to do things like crop out "void" space in comic pages
  • node-schedule
    This module is in charge of queuing tasks to be done on a schedule
  • And various others