Giter VIP home page Giter VIP logo

twist-v2's Introduction

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.

twist-v2's People

Contributors

dependabot[bot] avatar radar avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

twist-v2's Issues

Frontend app gives an error!

I followed the required steps for backend and frontend apps but while starting the frontend app, I'm getting this error.

Failed to compile.

./src/index.js
Module not found: Can't resolve 'bootstrap/dist/css/bootstrap.css' in '/Users/santosh/my-free-work/twist-v2/frontend/src'

Show comments on notes list page

When viewing a list of notes, I frequently want to see if I have left a comment before on that note. Seeing comments appear under notes would be helpful on the notes index page.

Footnotes are not appearing

A footnote like so:
Devisefootnote:[https://github.com/heartcombo/devise].

is not appearing in the footnotes section.

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.