Any serious fan of web comics can attest to the drudgery of having to visit 10 different websites to get their daily fix, and having to remember every separate web comic's update schedule (if any). Adding to the agony is the fact that new strips are often released late, or scheduled release dates may be skipped entirely.
Note: Non-essential mechanisms are marked NTH for Nice-To-Have.
This project aims to solve all of these problems as best as it can. Several mechanisms pull in all available new strips from all available comics, and notify users of what's coming in.
While the website is intended for registered users, freely available access is given to the whole archive of available comics.
Premium functionality is free, but requires registration.
Registered users can manage a list of favorite comics, so that they can suppress the noise of non-favorite comics in their news feed. The distribution of the votes determines ranking, and may influence some randomly generated feeds or pages for all users. In the future, conceptually related comics may be suggested in an ad-like style (NTH).
Registered users can vote for a specific strip, to let others know that they strongly endorse it. There are currently three types of votes for strips:
- like: users can vote once for every single strip they like.
- best: users can only vote for 1% of strips per comic, signifying what they consider to be the very best ones that deserve special praise.
- typical: users can vote for a strip that should be shown to other users considering to favorite this comic. It should focus on strips that are exemplary of the style of humor/artwork/storytelling/... that the comic intrinsically contains. Typical strips should try to represent the kind of strip the user can expect "on average".
Registered users can decide to blitz a comic, i.e. to read it chronologically from its oldest to its newest release. For most projects which have been running for a while, this takes a lot of time and, presumably, several reading sessions. Web Comic Vault keeps track of a user's current position, and projects the time it should take the user to finish the blitz successfully, given their current blitzing speed (NTH).
New comics deserve attention too ! Registered users can vote on comics that should be in the Web Comic Vault's portfolio, but aren't yet.
Proper care is taken to make sure that no copyrights, licenses, or other author's rights are violated. If the author can be contacted personally, we will ask them for their preferences regarding hotlinking, republishing rights, etc. The default is to NOT hotlink images from a comic's website, which seems like the wisest decision given this story.
Currently planned scanning mechanisms:
- URL scanning
- RSS feeds
- Twitter channels (NTH)
Currently planned notification mechanisms:
- soft alerts on the web app's home/news screen
- Slack-like favicon changes
- desktop notifications (NTH)
- an own RSS feed (NTH)
There are 4 objects that are available through REST routes returning JSON objects.
- /comic : A periodical online publication of graphic art with continuity in theme, artwork, and consistent set of publishers.
- /strip : An installment of a comic, i.e. the smallest unit of publishing possible
- /category : The general categories in which a comic may fall.
- /user : The object associated with a registered user, which contains settings, their favorite comics and strips, and their blitzing status for each comic. Only available with a valid authentication token in the request header
Each type of object can be accessed in 3 ways:
-
type : A JSON list of objects of the specified type, delimited to the 20 most relevant ones
-
/type/{id} : A single object in JSON
-
/type1/{id}/type2 : A list of objects of type2 which are strongly associated with the specified type1 object.
Example: /comic/XKCD/categories returns all categories that XKCD belongs to
This MEAN stack project is a school assignment for the third year course of Web Apps at Hogeschool Gent. Its reference implementation can be found here