Skip to content

Latest commit

 

History

History
executable file
·
37 lines (26 loc) · 1.58 KB

README.md

File metadata and controls

executable file
·
37 lines (26 loc) · 1.58 KB

Running

Run the backend by itself (e.g. on a server) node src/videoAPI.js

Run the React development server npm run react-start

Run them together npm run dev

Run the Electron app in development mode npm start

Build the Electron app (and React app) for production npm build

Update the source code inside the Electron app (faster develepment) npm run update-build

Design

This app uses these modern frameworks/libraries:

  • Express/Node backend for a RESTful API
  • React for a client-side cross-platform frontend
  • Electron to achieve desktop-class app integration

And these principals of the REST architecture:

  • Uniform Interface: resources are accessed in a consistent way and can be modified intuitively to access additional resources.
  • Client-Server model: frontend and backend can evolve separately as long as the interface between them stays the same.
  • Stateless: each request from the client should contain all the information necessary to service the request.
  • Cacheable: immutible resources declare themselves as cachable.
  • Layered System: some resources may exist on a server beyond where the frontend is directly connected, and access to that resource will be transparent, regardless of the layers it went through.
  • Code on Demand: instead of static HTML, the server sends executable code (React JS) that implements client-side features at runtime, opposed to building a single-purpose client for this specific API.

REST stands for Representational State Transfer. It's paradigm is essentially to create a state, represent that as text, then transfer it to another server.