Skip to content

lidonation/catalystexplorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CatalystExplorer

CatalystExplorer is an open-source research, analytics, and business acceleration platform designed to explore, analyze, and accelerate Project Catalyst proposals and outcomes. Built using a Laravel backend, Inertia.js with React frontend, and PostgreSQL for database management, this repository provides robust tools for in-depth research, dynamic analytics, and comparative analysis.

Project Overview

CatalystExplorer aims to make Project Catalyst data more accessible and actionable. It offers zero-click insights, proposal comparisons, and deep research capabilities, empowering users to make informed decisions and collaborate effectively.

Features

  • Zero-Click Insights: Answer frequently asked questions with no interaction.
  • Deep Proposal Research: Aggregated funding, milestones, and review data.
  • Dynamic Charts & Analysis: Fund trends and other visual metrics.
  • Proposal Comparisons: Stack multiple proposals side-by-side.
  • Jormungandr Explorer: Access and analyze on-chain voting records.

Prerequisites

  • PHP 8.3+
  • Node.js 16+
  • Composer 2.7+
  • PostgreSQL 16+
  • Laravel 8.x
  • Inertia.js 2.0+
  • React 17+

Project Status

The CatalystExplorer project is currently in active development.

Badges: Gitlab Pipeline Status Test Coverage GitLab License GitLab Issues

Get up and running

  1. Clone this repository: https://gitlab.2lovelaces.io/lidonation/www.catalystexplorer.com.git
  2. cd into the project directory: cd www.catalystexplorer.com
  3. copy thr example.env to the .env file cp application/.env.example application/.env
  4. Run make init to install all frontend and backend dependencies and start the docker services.
  5. Run make vite to start the vite dev server and watch for changes.
  6. Navigate to http://localhost in your browser.

Makefile Commands

watch

make watch Starts vite dev server and watches for changes.

backend-install

make backend-install Installs laravel composer dependencies.

frontend-install

make frontend-install Delete and reinstall node_modules.

frontend-clean

make frontend-clean Delete node_modules, lock files and yarn cache.

rm

make rm remove all docker containers and volumes.

down

make down shutdown all docker containers but keep volumes.

up

make up start docker containers.

test-backend

make test-backend Run pest php tests.

create meilisearch indexed

make create-index ##For creating all indices for all models,

make create-index proposal ##To create for individual models pass the model name

make import-index ##for loading the document to meili, also accepts argument

make flush-index ##for flushing the document to meili, also accepts argument

make delete-index ##for flushing the document to meili, also accepts argument

create indexDb tables

In the application/resources/js/scripts/generateDbSchema.ts file you can declare the table and the type to be infered, we also generate the columns from the type keys here is the object you wan to update for this

const typeTableMap: Record<string, string> = {
    "ideascale_profile_data": 'IdeascaleProfileData',
};

Notice the types match the genarated types name from our dto, we do this for consistency and eas of maintainance.

After updating this object runs make db-schema to generate the schema that indexDb will use to create the tables. You can verify this in application/resources/js/db/generated-db-schema.ts

// Auto-generated. Do not edit manually.

export const TABLE_INDEXES = {
    "ideascale_profile_data": "hash, ideascaleId, username, email..."
};

export interface DbModels {
    "ideascale_profile_data": App.DataTransferObjects.IdeascaleProfileData;

}

πŸ” Meilisearch Index Management

This command helps manage your search indexes (create, import, flush, delete) and seeding logic directly from Laravel Artisan.

Usage
# Seed the search index
php artisan search:index seed

# Create index for all models
php artisan search:index create

# Create index for models that match a keyword
php artisan search:index create Profile

# Import all models to index
php artisan search:index import

# Import specific model(s) matching a keyword
php artisan search:index import Voter

# Flush all indexes
php artisan search:index flush

# Delete all known index names
php artisan search:index delete

# Delete indexes matching keyword
php artisan search:index delete proposal
Models supported
App\Models\Voter
App\Models\BookmarkCollection
App\Models\ProjectSchedule
App\Models\Community
App\Models\Proposal
App\Models\IdeascaleProfile
App\Models\Group
App\Models\Review
App\Models\MonthlyReport
App\Models\Transaction
App\Models\VoterHistory

Index Names
cx_bookmark_collections
cx_proposals
cx_communities
cx_ideascale_profiles
cx_monthly_reports
cx_review
cx_groups
cx_transactions
cx_voter_histories

Contributing

We welcome contributions from the community! Please check out our Contribution Guidelines for more information.

License

This project is licensed under the Apache License 2.0. See the LICENSE file for more details.

Contact

For more details, visit CatalystExplorer or reach out to our team.

Authors and acknowledgment

coming soon

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 19