Git Product home page Git Product logo

serials's Introduction

Web Fiction

This app aims to be a podcast-like experience for reading serial publications on the web.

Many excellent books and webcomics are being published openly on the web today. Most of those are published one chapter at a time. It's awesome that authors are self-publishing, but this format makes it hard to keep track of your progress.

The system will scan sources to create a table of contents for each book. It will notify subscribers, and keep track of their reading progress.

Build Status

Disclaimer

Neither Orbital Labs or Web Fiction are affiliated with any of the authors, books, art or content. We currently use art under the Fair Use doctrine, but prior to launch we will only use art we have a clear license to.

Please contact [email protected] if we are using anything we don't have rights to and we'll clear it up

Early Access Site

http://webfiction.co

MILESTONES

  • Early Access Launch

Contributing

Let's talk! Contact me, submit an issue or PR with your proposed changes, or pick up an issue already logged.

Development

Run Database

rethinkdb

Haskell Server

# enter the REPL
$ stack ghci

# Run the application (Ctrl-C to exit)
Main> mainApi

# Reload your code
Main> :r

# Alternatively, build and run the executable
$ stack build
$ stack exec serials api

Front-end application

$ npm install
$ cs web && webpack

You'll probably want to make yourself an admin by hand. Once you've signed up, go to http://localhost:8080 and enter the following query into the Data Explorer

r.db('serials').table('users').update({admin: true})

serials's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

serials's Issues

Import - skip inactive sources

There's already a mechanism to mark a source as active or inactive. When importing, ignore inactive sources. Print something to the log to indicate they are being ignored.

Login feedback

If you put in a bad login it doesn't do anything. It should say you failed the login.

Suggestion: better tracking chapter progress, through a browser extension

Been trying out the app, pretty neat.

One thing occured to me (correct me if I am wrong), the current flow for bookmark/tracking progress is:

  1. click a chapter
  2. read
  3. go back to webfiction app
  4. click next chapter through UI

Many fictions have next/prev chapter links built in (wordpress ones for example), readers are much more likely to click on those instead of clicking back button - and the progress happened this way is lost.

Two ways I can think of to address this:

  1. through link's :visited style, however, in all browsers, js have no access to the data, only css does, so cannot do it automatically, still requires user to manually mark all visited chapters as read
  2. also bundle a chrome extension with the app, might work like this:
  • have a background page/script running to coordinate events across tabs
  • when user visit webfiction app, somehow share authentication token with the background script, so it can communicate with app server on its own
  • when user click open a chapter from app, inform the background script, indicating a new reading session has started, and keep tracking the opened fiction tab
  • run a content-script on page load in fiction/chapter tab, renders prev/next tab button, the content script should know the current chapter link and webfiction id, so are its previous and next chapters' link and id
  • clicking these buttons will refresh page navigate to next chapter's link (can be just a <a> tag), also communicating to background page the current chapter is done
  • upon receiving the message from content script, background page make a ajax request to webfiction server, with the chapter id provided in the message passed in

tl;dr: use browser extension to render prev/next button on actual fiction chapter's page and communicate to server about reading progress upon clicking them

Secure user routes

Only admins or the corresponding user should be able to see user subscriptions and edit user information.

Centering content in browser

I think it seems a little weird that the content is floated to the left, it would probably be better if it would be centered.

Are you new to Zurb Foundation?

I'm guessing that in main.js, instead of:

    <div className="row columns small-12" style={background}>
      {this.props.children}
    </div>

you meant something like:

<div className="row">
    <div className="small-12 large-12 columns" style={background}>
      {this.props.children}
    </div>
</div>

I don't know react.js, but I think it supposed to look like that. You can read more here.

Super simple email collection

We need a way to collect emails if people are interested in knowing when this thing comes out. Not a login, just save their emails so we can keep them in the loop.

Good landing page

We need a static landing page (doesn't load any of the app for speed) that lets people sign up for the site.

  • describe what we're doing
  • collect emails (or real signups?)
  • have pretty pictures
  • be awesome

Then we can spam the world saying they can sign up for beta invites, and start releasing them.

Signup strategy

Direct them to landing page here? Or on unbounce?

Then get them to sign up.

Real user interface

The admin interface is great, but the end-user experience sucks. Draw out what we're making and do it.

Automatic scanning

Our system should scan all sources automatically every 5 minutes.

  • Need to improve saving time (right now we're saving everything one at a time)
  • Monitors

Can't access the import-log

I'm getting 401 unauthorized. I created an account: ed72f5c2-66df-4c35-a709-4aa3ff00314f. Admin is set to true.

Also when I click "admin" it goes back to saying Login instead of Hello, Sean. I'm not sure if that's related.

Currently it's pretty confusing, because you can access the admin, and the import-log page, just not the actual import log.

Header organization

We have too many header items. we need a clean design for our different areas / tabs / login, etc. On small screens things disappear and push content down.

Search by tags

Ability to add tags to a source. Search by tags. Or some way to divide the books into useful categories.

Cron isn't working

It's not running. See the import log. I'm not sure what changed but it seemed to stop working around the time I changed the deploy to work with circle-ci.

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.