• Stars
    star
    128
  • Rank 271,943 (Top 6 %)
  • Language
    Ruby
  • Created about 6 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A book review tool for Leanpub's Markdown Book Format

Twist (v2)

This is a rewrite of my Rails-based book review app in rom-rb, dry-rb, (some parts of) Hanami, Sidekiq, GraphQL, React, Reach Router, Apollo, TypeScript, GraphQL Code Generator, Tailwind, and whatever other Cool Hipster Techâ„¢ I can get my grubby hands on.

I am currently using this application to let early reviewers read my books and to leave comments on them.

Preview

Structure / Philosophy

My philosophy for developing this app revolves around separating two main parts of the codebase:

  1. The backend: retrieves data from data sources (GitHub / the database), and presents it for frontend consumption
  2. The frontend: retrieves data from the Backend, has no idea where it came from, and presents it to the user

I'm hoping with this app to demonstrate that it is possible to separate these two layers into two separate applications. My mental map of data flow within the application goes something like this:

DB <-> Backend Repositories <-> Backend GraphQL endpoint <-> Frontend <-> Browser

I want to demonstrate with this app that it's possible to build a frontend that only has knowledge of how to find data, not how it is constructed. In this app, the frontend component knows only that it can find data at /graphql. It has no knowledge at all about how the backend collects that data for presentation.

I want to also demonstrate that it's possible to build a backend app that is data-store agnostic. With the use of the Repository Pattern, the backend application knows only that it can talk to the repositories to collect the data. The backend application knows nothing about how that data is collected. Today, the repositories talk to a PostgreSQL database, but tomorrow it could just as easily be a Redis store and (assuming the data returned is the same), the backend app wouldn't know the difference.

READMEs

The READMEs for the backend and the frontend can be found in their respective apps.

More Repositories

1

guides

Guides for Ruby and Elixir and whatever else I feel like
Ruby
1,528
star
2

by_star

Lets you find ActiveRecord + Mongoid objects by year, month, fortnight, week and more!
Ruby
1,045
star
3

distance_of_time_in_words

Better distance of time in words for Rails
Ruby
517
star
4

humanize

Takes your numbers and makes them *fancy*.
Ruby
429
star
5

rboard

A fully featured forum system compatible with Rails 2.3
Ruby
293
star
6

joyofelixir

A gentle introduction to the Elixir programming language
HTML
139
star
7

twist

Book review application for LeanPub's Markdown format
Ruby
103
star
8

elastic

A thin veneer over HTTPotion that talks to Elastic Search
Elixir
65
star
9

mtg

Magic: The Gathering, but in Ruby
Ruby
57
star
10

railsbot

The #rubyonrails channel bot
PLSQL
47
star
11

summer

A Tiny IRC Bot framework
Ruby
43
star
12

houser

Lightweight multitenancy gem for Rails 3 and Rails 4
Ruby
32
star
13

chronic

Elixir
30
star
14

saas_book_examples

Ruby
27
star
15

searcher

Fun experiment in parsing search query strings (like Pivotal Tracker does)
Ruby
25
star
16

forem.heroku.com

The application that contains the forem engine example
Ruby
22
star
17

lookup

Lookup for Ruby & Rails api in the terminal
Ruby
20
star
18

surveyor-2

Culture Amp Junior Engineering Program - 2018 Coding Test
Ruby
19
star
19

ryanbigg.com

Jekyll-powered version of ryanbigg.com
HTML
18
star
20

elixir-irc

Naive implementation of an IRC server in Elixir
Elixir
17
star
21

postbin

Postbin written in Sinatra
Ruby
16
star
22

ordinalize

Ordinalize your numbers (like humanize)
Ruby
15
star
23

chirper

Ruby
15
star
24

toy_robot_elixir

Code from leanpub.com/elixir-toyrobot
Elixir
12
star
25

writing-an-interpreter-in-elixir

Elixir
12
star
26

asciidoc-toolchain

Ruby
11
star
27

bix

Ruby
11
star
28

screencasts

Code for the screencasts I record
Ruby
10
star
29

forem-redcarpet

Provides Recarpet markup (with syntax highlighting by pygments.rb) for Forem posts}
Ruby
8
star
30

logs

JavaScript
7
star
31

maintaining-rails-examples

Ruby
6
star
32

exploding-rails-rom-dry-example-app

Ruby
6
star
33

setup

Go
6
star
34

exploding-rails-examples

Ruby
6
star
35

fans

Simple application showing how to do models for user's "favouriting" other users.
Ruby
5
star
36

jot

A light wrapper around the JWT gem
Ruby
5
star
37

graphql_book_examples

The code from the book "GraphQL for Rails Developers"
Ruby
4
star
38

banana

A warden example app
Ruby
4
star
39

find_by_hash

Extension to ActiveRecord to allow you to do findy-thingies with hashes
Ruby
4
star
40

logs.ex

Phoenix application for displaying IRC logs from some select channels
Elixir
4
star
41

numero

Numero language
Ruby
4
star
42

surveyor

Culture Amp's Junior Engineering Program - 2017 Coding Test
Ruby
4
star
43

phoenix-react-websocket-todo

Elixir
3
star
44

debugging_book_examples

Debugging Book Example Code
Ruby
3
star
45

phoenix-views-example

Elixir
3
star
46

cartify

REST / GraphQL demo
Ruby
3
star
47

wedding

App for managing wedding seating plan
Ruby
3
star
48

rails-init

Go
3
star
49

forem-rdiscount

RDiscount formatting support for Forem
Ruby
3
star
50

logs.ex-legacy

The old logs.ex.
JavaScript
3
star
51

promo

Toy project of building a promotion system in Elixir
Elixir
2
star
52

service-vic-qr-code

TypeScript
2
star
53

scrivener_elastic

Elixir
2
star
54

rubyonrailsbook.com

JavaScript
2
star
55

activitypub-spike

Ruby
2
star
56

epub_gen

A small RubyGem to generate epubs
Ruby
2
star
57

rails3book_test

Nothing to see here, move along.
2
star
58

just

For when you're just visiting (someone else's computer)
Ruby
2
star
59

logs-react

JavaScript
1
star
60

buildkite-notifier

Ruby
1
star
61

barefoot

JavaScript
1
star
62

surveyor-rom

Ruby
1
star
63

http-test

Ruby
1
star
64

webpacker-typescript-css-modules

Ruby
1
star
65

trickery

Ruby
1
star
66

yaml-path-finder

CSS
1
star
67

webpack-example

Ruby
1
star
68

selector

Ruby
1
star
69

jep-mumble

Ruby
1
star
70

toy_robot_example

Ruby
1
star
71

jep-toy-robot

Elixir
1
star
72

rails-init-homebrew-tap

Ruby
1
star
73

sri

A tool to generate Sub-Resource Integrity hashes from the terminal
Ruby
1
star
74

auth_me

Ruby
1
star