AntoineCheron / todomvc

React imperative and functional implementations of TODOMVC + a REST and GraphQL API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TODOMVC

Here, on the frontend, I propose to highlight the differences between using React with the imperative and functional paradigms. As React is a vue library, this difference is visible only in the vue layer.

Within the imperative paradigm, classes are used. On the ohter hand, within the functional paradigm, the React hooks are used.

In addition, I propose a REST API to enable the design of new versions of TODOMVC that use a backend. In my opinion, it could be a nice addition to TODOMVC in order to help developers learn how to use a REST API within a MVC frontend. I consider this as an interesting point as the design of frontends using a REST API became an industry standard.

I also added a GraphQL implementation for those who would like to discover how to design frontends on top of GraphQL APIs.

Project Structure

The two backends are shipped into a single Java Application, and the two versions of the frontend into a single application too. To know more about this, read the README of each one: frontend and backend.

If you're not familiar with this, the frontend and backend terms refers to the architecture used. These terms have been explained here.

Prerequisites

You need to have:

  • A Java Development Kit (JDK) version 11 or later
  • Node JS

How to install?

Open a terminal, go to the folder where you want to save this project and then type:

git clone https://github.com/AntoineCheron/todomvc.git
cd todomvc

cd frontend
npm install

How to run?

Contributing

Simply open an issue to get in touch and propose your contribution.

License

The license of this project is MIT. It lets people do almost anything they want with this project, like making and distributing closed source versions.

About

React imperative and functional implementations of TODOMVC + a REST and GraphQL API

License:MIT License


Languages

Language:JavaScript 45.0%Language:Java 32.8%Language:Kotlin 19.3%Language:HTML 3.0%