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.
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.
- 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.
- PHP 8.3+
- Node.js 16+
- Composer 2.7+
- PostgreSQL 16+
- Laravel 8.x
- Inertia.js 2.0+
- React 17+
The CatalystExplorer project is currently in active development.
- Clone this repository:
https://gitlab.2lovelaces.io/lidonation/www.catalystexplorer.com.git - cd into the project directory:
cd www.catalystexplorer.com - copy thr example.env to the .env file
cp application/.env.example application/.env - Run
make initto install all frontend and backend dependencies and start the docker services. - Run
make viteto start the vite dev server and watch for changes. - Navigate to
http://localhostin your browser.
make watch
Starts vite dev server and watches for changes.
make backend-install
Installs laravel composer dependencies.
make frontend-install
Delete and reinstall node_modules.
make frontend-clean
Delete node_modules, lock files and yarn cache.
make rm
remove all docker containers and volumes.
make down
shutdown all docker containers but keep volumes.
make up
start docker containers.
make test-backend
Run pest php tests.
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
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;
}This command helps manage your search indexes (create, import, flush, delete) and seeding logic directly from Laravel Artisan.
# 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
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
cx_bookmark_collections
cx_proposals
cx_communities
cx_ideascale_profiles
cx_monthly_reports
cx_review
cx_groups
cx_transactions
cx_voter_histories
We welcome contributions from the community! Please check out our Contribution Guidelines for more information.
This project is licensed under the Apache License 2.0. See the LICENSE file for more details.
For more details, visit CatalystExplorer or reach out to our team.
coming soon