API and site for discovering publicly-available Desmos graphs. Not affiliated with Desmos.

Overview

desmosearch-api

API and site for discovering, cataloguing, and keeping track of publicly-available Desmos graphs. Not affiliated with Desmos. This project is currently in a very early stage of development, so expect lots of breaking changes for the time being.

Hosting

Initial Setup

To host desmosearch-api, follow these instructions the first time you intend to run it:

  1. Install Nodejs and Rust if you have not already.
  2. Clone this repository.
  3. Navigate to the root directory of the repository, and run cargo run --release. This will run the backend (web server). The backend is the server that exposes the API that allows for the querying of Desmos graphs, and also allows users to access the frontend. This may take a while the first time, as it will have to compile the backend from scratch.
  4. Navigate to frontend/desmosearch-browser, run npm install, and then run npm run build to compile the frontend- in other words, the website that lists the Desmos graphs.
  5. (Optional) Go to the test_dataset directory, run npm install, and then run npm start. This will upload about 130000 graphs to the database (which would otherwise be empty).
  6. Navigate to the page http://localhost:8000/static/index.html to view the frontend. If you see a page of Desmos graphs appear, you're good to go!

Subsequent Setup

If you close the server and wish to run it again, all you need to do is navigate to the root directory of the repository, and run cargo run --release, as everything else will have been set up already.

API Documentation

The Desmosearch API has a single endpoint at /graphs. This will- by default- show you a single graph. By appending a querystring to the URL (examples below), you can sort and filter the content to your liking.

limit and offset

  • The limit parameter tells the server how many graphs to return when querying graphs.
  • The offset parameter tells the server how many graphs to skip before sending back graphs. This is useful if you want to navigate through multiple "pages" of content- e.g. offset could be 0 for the first page, and 10 for the second page, thus skipping the first 10 graphs.

id, parent_id, name, and creator

  • The id query parameter lets you filter by graph ID (the unique final path segment of a Desmos graph link)
  • The parent_id parameter lets you filter by the ID of a previous version of a graph.
  • The name parameter lets you filter by graph name.
  • The creator parameter lets you filter by graph creator. (Note that, in many cases, this is unknown.) There are two wildcards you can use with these parameters: % (must be escaped as %25), which means "0 or more of any character," and _, which means "one of any character".

Example: /graphs?creator=MathEnthusiast314&limit=10&name=%25fractal%25. This query returns exactly ten graphs which have been created by MathEnthusiast314, and contain the string fractal somewhere in their name.

upload_date_start and upload_date_end

Filters graphs by date range- they must have been uploaded to Desmosearch (not Desmos!) after the value of upload_date_start and before the value of upload_date_end. These parameters- if included- must be Unix Timestamps!

sort

Determines the means by which results are sorted. Can be one of id, parent_id, name, creator, or upload_date.

You might also like...

A wrapper for valorant-api, a third-party API for getting data within Valorant. Available on npm

valorant-wrapper A wrapper for the third-party valorant-api How to Use All endpoints can be accessed off the ValAPI class. import { ValAPI } from 'val

Nov 7, 2022

View maps, graphs, and tables of your save and compete in a casual, evergreen leaderboard of EU4 achievement speed runs. Upload and share your save with the world.

View maps, graphs, and tables of your save and compete in a casual, evergreen leaderboard of EU4 achievement speed runs. Upload and share your save with the world.

PDX Tools PDX Tools is a modern EU4 save file analyzer that allow users to view maps, graphs, and data tables of their save all within the browser. If

Dec 27, 2022

Automatically construct and visualize Graphs generated from your Node.js project

Automatically construct and visualize Graphs generated from your Node.js project

cyclops is a minimalist developer tool that can be used to generate directed graphs from your Node.js project. It can automatically detect circular de

Jan 5, 2023

A lightweight SolidJS component for building interactive node-based diagrams and graphs.

Convert Your Ideas To Graphs With Solid Graph! Solid Graph A lightweight and minimal Solid component for building interactive graphs and node-based ed

Dec 8, 2022

A lightweight SolidJS component for building interactive node-based diagrams and graphs.

Convert Your Ideas To A Simple And Excitig Journay With Odysea! Odysea A lightweight and minimal Solid component for building interactive graphs and n

Aug 15, 2022

Build Schema.org graphs for JavaScript Runtimes (Browser, Node, etc). Improve your sites SEO with quick and easy Rich Results.

schema-org-graph-js The quickest and easiest way to build Schema.org graphs for JavaScript Runtimes (Browser, Node, etc). Status: 🔨 In Development Pl

Dec 21, 2022

Automatically construct, traverse and visualize graphs generated from your Node.js project

Automatically construct, traverse and visualize graphs generated from your Node.js project

skott is a minimalist developer tool that can be used to efficiently generate directed graphs from your JavaScript/Node.js project. It can automatical

Dec 21, 2022

A crawler that crawls the site's internal links, fetching information of interest to any SEO specialist to perform appropriate analysis on the site.

Overview đź“ť It is a module that crawls sites and extracts basic information on any web page of interest to site owners in general, and SEO specialists

Apr 22, 2022

A crawler that crawls the site's internal links, fetching information of interest to any SEO specialist to perform appropriate analysis on the site.

Overview đź“ť It is a module that crawls sites and extracts basic information on any web page of interest to site owners in general, and SEO specialists

Apr 22, 2022
Owner
null
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
Non-interactive publicly verifiable distributed key generation and resharing algorithm over BLS12-381

NPVDKG-RS This repository contains a mathematical presentation and some code to demonstrate our developed non-interactive publicly verifiable distribu

NATRIX Official 8 May 19, 2022
🧠 My second brain — Ideas, thoughts, resources, notes… All publicly shared in one place.

?? Second Brain Welcome to my second brain. This is a collection of notes, journals, and resources written or collected by me (@pixelsbyeryc), in an a

ERYC 4 May 4, 2022
Open Harvest is a technology designed farmers to publicly share the details of their crops/land to allow all farmers to stay informed on the best crops they can grow without risking a surplus crisis.

OpenHarvest OpenHarvest is a web application designed to balance farming production in India. Farmers in India are struggling with marketing their cro

Call for Code® with The Linux Foundation 11 Dec 8, 2022
A CloudFlare Worker / script / bot to sync Notion pages publicly as GitHub Discussions.

notion-github-sync This bot syncs public Notion pages as GitHub Discussions/Issues. It's done periodically, based on the pages shared with the Notion

The Guild 20 Dec 22, 2022
A "Basic-to-Lisp" compiler. But Basic is not real Basic, and Lisp is not real Lisp.

Basic2Lisp A "Basic-to-Lisp" compiler. But Basic is not real Basic, and Lisp is not real Lisp. Syntax Print-Sth Put some-value to standard output. PRI

Hana Yabuki 5 Jul 10, 2022
🧩 TypeScript utility type in order to ensure to return only properties (not methods) containing values in primitive types such as number or boolean (not Value Objects)

?? TypeScript Primitives type TypeScript utility type in order to ensure to return only properties (not methods) containing values in primitive types

CodelyTV 82 Dec 7, 2022