Coder Social home page Coder Social logo

readdit's Introduction

Welcome to Readdit. After spending many nights staying up reading stories on r/nosleep I decided that maybe all this phone blue light isn't good for my quality of sleep. I recently bought a Kindle to help me get more into reading and ended up longing for an easier way to read my Reddit stories on the beautiful E-Ink display.

Readdit essentially takes the HTML/CSS from the desired Reddit posts, treats them as chapters, and converts them to an .epub format. Pretty simple.

Project Setup

Readdit currently uses a React/MobX frontend located in the client directory. The "backend" uses Firebase functions.

Currenty the only API endpoint uses the epub-gen to do the actual conversion. I'm working on reverse-engineered version of this library that will run in the browser (here), so a future iteration might see the removal of there functions altogether.

Getting up and running

You can check out the live version here.

  1. Clone this repository

  2. cd readdit

  3. npm install

  4. npm run api-dev to serve the Functions emulator locally.

  5. npm run client-dev runs the webpack development server that comes built into create-react-app.

  6. That's basically it. client and function directories have their own package.json files to do more specific things.


NOTE

To run the Functions API emulator, you'll need the Firebase CLI installed globally.

Install with npm install -g firebase-tools


How to contribute

I'm going to try to keep the Issues section as up to date as possible with bugs/features.

Any ideas? Create an Issue for discussion :)

If you feel like working on something leave a comment on the Issue so others know it's being worked on.

When you submit a PR for the client directory, head on over to the Live Preview Action Navigate to your commit then "Deploy Preview". You should see a link to a live preview of your branch.

Any questions just ask!

readdit's People

Contributors

brannonjames avatar jimmybrannon avatar sambrannon avatar

Watchers

 avatar  avatar

Forkers

sambrannon

readdit's Issues

Entire search item not selectable

When trying to select a post from the search drop down, I noticed that the entire list item isn't select-able. It's only hen I hover over the very top park of the list item that is highlights and allows me to click on it.

Screen Shot 2021-01-30 at 11 32 28 AM

Add a "Send to Email" option

This option would allow users to send their eBook to a different device that the one they created it on.

I image this would be a Nodemailer implementation as a Firebase function, but it would be neat to hear some other ideas.

When you buy a Kindle you get an special email address for that Kindle, so whatever attachment you send to that email gets downloaded to your Kindle automagically which would be a sweet feature to incorporate into this app :)

Add Unit/Regression Testing

I mean why not?

Jest and React Testing Framework seem to be pretty popular now-a-days for this stack but I'm open to other ideas.

It might be cool to get something like Puppeteer implemented so we can run a full regressions in the Github Actions pipeline.

No loading indicator

When I click the "Download" button, there's no feedback to let the user know the eBook is downloading. Sometimes it can take a few seconds to actually start downloading so the button should be disabled on click and we should see some sort of loading indicator.

Add support to search subreddits

Instead of pasting in inks to individual Reddit posts, it would be nice if the Search bar could actually search for these posts so we could add them to the eBook queue a lot faster.

Example: Search nosleep and automatically add the top 10 for that week or something

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.