Welcome to the Boundless project! Boundless is a crowdfunding platform built on the Stellar blockchain, using Soroban smart contracts to facilitate transparent and decentralized project funding. This document outlines how to contribute to the project, including setting up your development environment, best practices, and contribution guidelines.
- Project Overview
- Technology Stack
- Getting Started
- How to Contribute
- Code Standards & Best Practices
- Smart Contract Development
- Testing
- Deployment & CI/CD
- Reporting Issues
- Community & Support
Boundless enables users to create, support, and manage projects in a decentralized and trustless manner. Key features include:
- User Authentication (email & social login, KYC verification)
- Project Creation & Discovery
- Voting & Feedback Mechanism
- Crowdfunding via Stellar Wallets
- Milestone-Based Fund Releases
- Next.js API Routes (for server-side logic)
- Prisma ORM (for database interactions)
- PostgreSQL (for storage)
- Stellar SDK (for blockchain interactions)
- Next.js (App Router) (for the main web application)
- Shadcn (for UI development)
- Tailwind CSS (for styling)
- Zustand (for state management)
- Vercel (for frontend hosting & deployment)
- Docker (for containerization)
- GitHub Actions (for CI/CD pipelines)
Before contributing, ensure you have the following installed:
- Node.js & npm
- Docker (for containerized development)
- PostgreSQL (for database setup)
- Rust & Soroban CLI (for smart contract development)
- Git (for version control)
- Fork the repository https://github.com/0xdevcollins/boundless and clone your fork:
git clone https://github.com/YOUR_USERNAME/boundless.git cd boundless - Install dependencies:
npm install
- Set up environment variables:
Create a
.env.localfile based on.env.exampleand configure database, Stellar, and authentication settings. - Start development server:
npm run dev
- Fork the repository to your GitHub account.
- Clone it locally using:
git clone https://github.com/YOUR_USERNAME/boundless.git
- Use descriptive branch names:
git checkout -b feature/add-user-profile
- Follow the coding standards (see next section).
- Commit with meaningful messages:
git commit -m "feat: added user profile section"
- Push your branch:
git push origin feature/add-user-profile
- Create a pull request on GitHub and describe your changes.
- Maintainers will review your PR and request changes if necessary.
- Once approved, it will be merged.
- Use ESLint & Prettier for formatting.
- Follow Conventional Commits (
feat:,fix:,chore:, etc.). - Use TypeScript.
- Keep functions modular and reusable.
Boundless uses Soroban smart contracts for funding and milestone tracking.
create_project(project_id, creator_address, metadata_uri, funding_target, milestone_count)vote_project(project_id, vote_value)fund_project(project_id, amount)release_milestone(project_id, milestone_number)refund(project_id)
- Install Soroban CLI: https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup
- Write a new contract in Rust:
- Place it under
contracts/directory. - Example structure:
#[soroban_sdk::contract] pub struct ProjectContract;
- Place it under
- test & Build:
cargo test cargo build
- Test smart contracts:
cargo test
Boundless uses GitHub Actions for deployment.
- Push to
mainbranch - GitHub Actions runs tests & builds the project
- Vercel automatically deploys frontend
- Backend updates are deployed manually
Found a bug? Have a feature request? Open an issue on GitHub:
- Go to Issues
- Provide clear details & screenshots (if applicable).
- GitHub Discussions: Boundless Discussions
- Twitter: Follow @boundless_fi
- Benjamin: https://t.me/kitch_the_dev
- Collins: https://t.me/devcollinss
Thank you for contributing to Boundless! 🚀