Welcome to the Whelp App repository. This application serves as a decentralized exchange (DEX) on the Coreum blockchain and is built using CosmWasm smart contracts. The repository architecture leverages Yarn Workspaces to modularize the codebase and facilitate development. Below you'll find details on the purpose of each workspace package and how to get started.
- Introduction
- Table of Contents
- Architecture
- Getting Started
- Packages
- Development Guidelines
- Contributing
The codebase is organized into multiple Yarn workspaces, each serving a specific purpose.
Core
: Main application built with Next.jsUtils
: Helper and utility functionsState
: State management with ZustandUI
: UI component kit based on Material-UI (MUI), supporting StorybookContracts
: Contains all auto-generated contract API code for interacting with CosmWasm smart contracts.
-
Clone the repository
git clone <repository_url>
-
Install dependencies
yarn install
-
Run development servers (From individual package directories or use workspace commands)
yarn dev
This is the main workspace that houses the Next.js application.
- Run development server:
yarn workspace core dev
Utilities, helper functions and common configurations reside here.
- To import in other packages:
import { someFunction } from '@whelp/utils'
The Zustand state management library is utilized for managing application state.
- To import in other packages:
import { useMyStore } from '@whelp/state'
This workspace contains a UI component library built on top of MUI and also supports Storybook for component documentation and testing.
- Run Storybook:
yarn workspace ui storybook
This workspace contains all auto-generated contract APIs for interacting with CosmWasm smart contracts on the Coreum blockchain. Code generation is done using ts-codegen.
- Build it:
yarn workspace contracts build
The type workspace contains all used types over all workspaces.
- Please follow the standard coding guidelines and styles.
- Always create a new branch for features or bug fixes.
- Keep commits granular and specific to the changes made.
Please read the CONTRIBUTING.md
file for details on how to contribute to this project.
For any issues or further questions, feel free to open an issue or contact the maintainers.