Giter Club home page Giter Club logo

webapp's Introduction

GraphAdvocates Web App

How To Contribute

Create a local .env.local file and add the following variable CLICKUP_API_KEY="" and instert your ClickUp API key into the quotes. This file will be gitignored and should not be pushed or shared with anyone. If you don't have a Clickup API key with the appropriate permissions, you should still be able to run the application locally. Pages that utilize the ClickUp API will appear empty.

To run use yarn dev

Google Calendar API

To confingure the google calendar shown at the bottom of the landing page, you'll need a few details from google:

  1. GOOGLE_CAL_ID: The id of the calendar to read events from
  2. GOOGLE_CLIENT_EMAIL: Google cloud api service account email
  3. GOOGLE_PRIVATE_KEY: Google cloud api service account private key

Modify the carousel

  1. public > assets > LandingCarousel will hold all images that will be used in the carousel.
  2. Images are shown in the order of the name of the file (e.g. 1.jpg, 2.jpg, etc..)
  3. Image recommendation are to maintain a max aspect ration of 2:1 (e.g. 2:1 and 1:1 will render perfectly). Anything beyond that will render blury
  4. Image will be renedered with a max height of 600px (The image can be any size as long as it maintains appropriate ratios)

Modify Advocate Spotlight

Data from the spotlight is stored in a Hesura DB to allow dynamic changes to be made through a form-like front-end. Go to graphadvocates.com/resources/spotlight to access the form to update the advocate spotlight. You will need an access key to authenticate.

Notes

Here are some important notes regarding the form submission system:

  • Anyone with the key can modify the website's information.
  • There is no option to modify previous submissions; a new form must be submitted. However, a modification feature can be added if needed.
  • The latest form submission will be displayed on the front page.
  • Each form submission will create a new entry in the database and will not overwrite previous entries, which could be useful for future reference.
  • The "Role(s)" field accepts comma-separated values.
  • The form includes general questions that apply to all spotlight submissions, but they can be customized.
  • The Advocate Spotlight section of the landing page can be customized to match the desired color scheme and layout.

Modify the 30 Day GRT Avg

The 30 day avg is calculated using two subgraphs (https://thegraph.com/explorer/subgraphs/G3JZhmKKHC4mydRzD6kSz5fCWve5WDYYCyTFSJyv3SD5?view=Playground&chain=mainnet) and (https://thegraph.com/explorer/subgraphs/Dgr3WsqFY8SoKW4RgzkCwyim4K4R4iejBxB1EVYEG2LN?view=Playground&chain=mainnet) as recommended by Derek.

The 30 Day calculation runs in /api/googleSheet. It is automatically triggered by Vercel on mignight UTC as a cron job. Inside the code, you can modify which google sheet gets written by modifying the following values:

const sheetId = "...";
const sheetName = "Sheet1";
const range = "Sheet1!D2:F2"; // range of cells to write data to
const rowIndex = 2; // row number to insert the new row before

webapp's People

Contributors

dylviz avatar 0xpeterpan avatar web3slimchance avatar

webapp's Issues

Investigate caching strategies to optimize performance

Option 1: Create shadow โ€˜DBโ€™ with only relevant data fields

Assumes use of some sort of persistent data store, like SQL or MongoDB

  • First run
    • fetch data for DAO members and Graph Advocates from Clickup API
    • filter for fields of interest from JSON object
    • save filtered data to persistent store

Option 2: Pre-fetch data on app load

Investigate Cuda Pages as alternative for member profiles

Social media reference landing page for web3 people (think Linktree):

Examples

Questions pertaining to use of Clickup as sole source of truth:

  • Can Graph Advocates update their information as they join and leave roles?
    • If no, how is information updated currently?

Concerns pertaining to use of Cuda Pages to complement Clickup:

  • Advocates could post links/content on their profile that does not align with our collective mission or community guidelines. Could provide clear guidelines that make it known your profile will be removed from the site if it is in breach of accepted community conduct

Dynamically Set Landing Page Information

Dynamically Set Landing Page Information
The landing page currently has a small section that displays some filler stats (# of advocates, # of grants, amount issued). The information is static since that's the quick/easy way of doing it. The right way would be grabbing this information from ClickUp. I would like to spend some time changing this to grab the information from Clickup. Though I'm not sure if the total issued grant amount is readily available in Clickup but I could always fill it in with some other stat.
Estimated Time: 4-6hrs

Time spent: 6.5hrs

Populate footer with working links

Current sections

DAO

  • Overview
  • Members
  • Community Grant
  • FAQ

Advocates

  • Overview
  • How to Join
  • Active Members
  • Roles
  • Endorsement Catalog

Follow Us

  • Discord
  • Telegram
  • Twitter
  • Endorsement Catalog

Legal (Do we need this as stand alone section?)

  • Privacy Policy
  • Terms of Service
  • DAO Charter?
  • Payments (Do we need this link?)

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.