Client-side app using various Lichess APIs for demonstration purpose

Overview

Lichess OAuth app demo

This is an example for a fully client side OAuth app that uses various APIs.

Features

  • Fully client side, no server needed
  • Login with Lichess (OAuth2 PKCE)
  • View ongoing games
  • Play games
  • Challenge the AI opponent
  • Challenge a player
  • Create a game seek
  • Watch Lichess TV

Try it out

The demo app is hosted on Github Pages

Run it on your machine

  1. npm install
  2. npm run build
  3. npm run serve or any other method to serve the app on http://localhost:8000

Points of interest

Feel free to reuse and learn from this code when building your own Lichess API app.

You might also like...

This Plugin is For Logseq. If you're using wide monitors, you can place journals, linked references, and journal queries side by side.

This Plugin is For Logseq. If you're using wide monitors, you can place journals, linked references, and journal queries side by side.

Logseq Column-Layout Plugin Journals, linked references, and journal queries can be placed side by side if the minimum screen width is "1850px" or mor

Dec 14, 2022

An npm package for demonstration purposes using TypeScript to build for both the ECMAScript Module format (i.e. ESM or ES Module) and CommonJS Module format. It can be used in Node.js and browser applications.

An npm package for demonstration purposes using TypeScript to build for both the ECMAScript Module format (i.e. ESM or ES Module) and CommonJS Module format. It can be used in Node.js and browser applications.

Dec 28, 2022

This is an application that entered the market with a mobile application in real life. We wrote the backend side with node.js and the mobile side with flutter.

HAUSE TAXI API Get Started Must be installed on your computer Git Node Firebase Database Config You should read this easy documentation Firebase-Fires

Nov 4, 2021

This plugin allows side-by-side notetaking with videos. Annotate your notes with timestamps to directly control the video and remember where each note comes from.

Obsidian Timestamp Notes Use Case Hello Obsidian users! Like all of you, I love using Obsidian for taking notes. My usual workflow is a video in my br

Jan 2, 2023

Demonstration of how you build full-stack, typed, NPM packages, the right way

NPM Packages - The Right way This repository aims to demonstrate how to build NPM packages the right way. my-package should import the shared code, bu

Nov 27, 2022

A simple NFT trading and breeding platform for demonstration purposes.

A simple NFT trading and breeding platform for demonstration purposes.

📦 boxyz I know it sounds strange, but maybe these boxes can breed and have children. They can be sold as well. boxyz is a fun project to trade and br

Dec 12, 2022

Project developed in typescript with clean architecture + tdd for demonstration purposes.

Description Project developed in typescript with clean architecture + tdd for demonstration purposes in Usystem. Installation $ yarn Running the app #

Oct 5, 2022

App to manage maintenance calls. App to manage maintenance calls. This application was created for the purpose of studies.

App to manage maintenance calls. App to manage maintenance calls. This application was created for the purpose of studies.

App to manage maintenance calls. App to manage maintenance calls. This application was created for the purpose of studies.

Dec 26, 2022

This project is based on the Awesome Books app repo, refactored with ES6 and organized with modules. The purpose of this project is to learn functionality organization using JavaScript modules.

Awesome Books with ES6 and modules A basic app project built with HTML, CSS and JS ES6 to keep track of awesome books. Built With HTML/CSS and JS best

Aug 27, 2022
Comments
  • Instructions as give fail

    Instructions as give fail

    Upfront I will grant the possibility that I don't know what I'm doing… That said, here is what I did:

    C:\Users\hsmyers>mkdir Lichess
    
    C:\Users\hsmyers>cd Lichess
    
    C:\Users\hsmyers\Lichess>npm install
    npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\hsmyers\Lichess\package.json'
    npm notice created a lockfile as package-lock.json. You should commit this file.
    npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\hsmyers\Lichess\package.json'
    npm WARN Lichess No description
    npm WARN Lichess No repository field.
    npm WARN Lichess No README data
    npm WARN Lichess No license field.
    
    up to date in 0.334s
    found 0 vulnerabilities
    
    

    Starting with the first warning, I deleted the lock file and copied the package.json file from this site to my machine and got this:

    C:\Users\hsmyers\Lichess>npm install
    npm notice created a lockfile as package-lock.json. You should commit this file.
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules\rollup\node_modules\fsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
    npm WARN [email protected] requires a peer of @popperjs/core@^2.11.6 but none is installed. You must install peer dependencies yourself.
    
    added 133 packages from 166 contributors and audited 134 packages in 64.788s
    
    22 packages are looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    

    I assumed I could survive the first two warnings (marked optional as they are) but had my doubts about the 'install peer dependencies remark. but to confirm, I went ahead and:

    C:\Users\hsmyers\Lichess>npm run build
    
    > lichess-oauth-app-example@ build C:\Users\hsmyers\Lichess
    > rollup --config
    
    [!] Error: Could not resolve entry module (rollup.config.js).
    Error: Could not resolve entry module (rollup.config.js).
        at error (C:\Users\hsmyers\Lichess\node_modules\rollup\dist\shared\rollup.js:198:30)
        at ModuleLoader.loadEntryModule (C:\Users\hsmyers\Lichess\node_modules\rollup\dist\shared\rollup.js:22306:20)
        at async Promise.all (index 0)
    
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! lichess-oauth-app-example@ build: `rollup --config`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the lichess-oauth-app-example@ build script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     C:\Users\hsmyers\AppData\Roaming\npm-cache\_logs\2022-11-17T00_16_59_407Z-debug.log
    

    I believe all of this is a cascade from an improper beginning. So what do I need for a warning and error-free run? Thanks!

    --hsm

    opened by hsmyers 2
  • Demo not running

    Demo not running

    I just downloaded a fresh copy of this repo and ran the setup instructions. The server runs but the site that loads is always a blank page. Here are my console warnings (on Chrome, Mac OSX)

    Screen Shot 2022-04-27 at 11 59 17 AM

    CLI output from build:

    Starting up http-server, serving ./
    
    http-server version: 14.1.0
    
    http-server settings: 
    CORS: disabled
    Cache: 3600 seconds
    Connection Timeout: 120 seconds
    Directory Listings: visible
    AutoIndex: visible
    Serve GZIP Files: false
    Serve Brotli Files: false
    Default File Extension: none
    
    Available on:
      http://127.0.0.1:8080
      http://192.168.1.200:8080
    Hit CTRL-C to stop the server
    
    opened by objectiveSee 2
Owner
Lichess
The free and open source chess server
Lichess
Easy server-side and client-side validation for FormData, URLSearchParams and JSON data in your Fresh app 🍋

Fresh Validation ??     Easily validate FormData, URLSearchParams and JSON data in your Fresh app server-side or client-side! Validation Fresh Validat

Steven Yung 20 Dec 23, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
The Main Purpose The main purpose of creating an anaonline information system, as an effort responsive to the management of the data of the Members of the Persis Youth based on information technology systems

landing-page-pp landing-page-pp.vercel.app #The Main Purpose The main purpose of creating an anaonline information system, as an effort responsive to

Hilman Firdaus 6 Oct 21, 2022
Fast and minimal JS server-side writer and client-side manager.

unihead Fast and minimal JS <head> server-side writer and client-side manager. Nearly every SSR framework out there relies on server-side components t

Jonas Galvez 24 Sep 4, 2022
Free, open-source client or server-side APIs to "lint" user input.

passbird Free, open-source client or server-side APIs to lint user input. Right now, you can check type for an email address i.e., either of disposabl

Vaibhav Pandey 1 Dec 26, 2021
This project will be using various AI and Rule Engine algorithm to detect various attack against a company!

?? Introduction This project will be using various AI and Rule Engine algorithm to detect various attack against a website! ?? Mission After starting

Harish S.G 4 Apr 29, 2022
Leader Board is a simple project based on JavaScript programing language. The purpose of this project is to work with APIs and ASYNC & AWAIT methods. I have used vanilla JavaScript with web pack to implement this project

Leader Board - JavaScript Project Table of contents Overview The challenge Screenshot Links Project Setup commands My process Built with What I learne

Mahdi Rezaei 7 Oct 21, 2022
Make drag-and-drop easier using DropPoint. Drag content without having to open side-by-side windows

Make drag-and-drop easier using DropPoint! DropPoint helps you drag content without having to open side-by-side windows Works on Windows, Linux and Ma

Sudev Suresh Sreedevi 391 Dec 29, 2022