Thank you for your interest in contributing to AnchorPoint! This guide will help you get started.
- Node.js >= 18.x
- npm >= 9.x
- Rust and Cargo (for smart contracts)
- Docker and Docker Compose (optional, for full stack)
-
Clone the repository:
git clone https://github.com/ceejaylaboratory/AnchorPoint.git cd AnchorPoint -
Install dependencies:
# Backend cd backend && npm install # Dashboard (frontend) cd ../dashboard && npm install
-
Set up environment variables:
cd backend cp .env.example .env # Edit .env with your configuration
-
Run database migrations:
cd backend npx prisma migrate dev -
Start the development servers:
# Backend (from /backend) npm run dev # Dashboard (from /dashboard) npm run dev
docker-compose up -dThis starts the backend, Redis, Jaeger (tracing), and Prometheus (metrics).
AnchorPoint/
├── backend/ # Node.js/TypeScript API server
│ ├── src/ # Source code
│ ├── prisma/ # Database schema and migrations
│ ├── docs/ # Backend documentation
│ └── scripts/ # Utility scripts
├── dashboard/ # React/Vite frontend
│ └── src/ # Source code (components, pages, hooks)
├── contracts/ # Stellar smart contracts (Rust/Soroban)
│ ├── anchorpoint/ # Core anchor contract
│ ├── staking/ # Staking contract
│ ├── swap/ # Token swap contract
│ └── ... # Other contracts
├── demo/ # Mock anchor server for local testing
├── infra/ # Infrastructure configuration
├── scripts/ # Project-level scripts
└── tools/ # Development tools
- Check existing issues to avoid duplicates.
- Open a new issue with the bug label.
- Include:
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Node version, etc.)
- Open an issue with the enhancement label.
- Describe the use case and proposed solution.
- Wait for discussion before implementing.
- Fork the repository.
- Create a branch from
main:git checkout -b feature/your-feature-name
- Make your changes following the code style guidelines below.
- Write or update tests for your changes.
- Commit with a clear message:
git commit -m "feat: add virtual scrolling to transaction list" - Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request against
main.
We follow Conventional Commits:
type(scope): short description
Optional longer description.
Types:
feat— New featurefix— Bug fixdocs— Documentation changesstyle— Formatting, no code changerefactor— Code restructuringtest— Adding or updating testschore— Build process, dependencies
Examples:
feat(dashboard): add dark mode toggle
fix(backend): handle expired JWT tokens gracefully
docs: update README with setup instructions
- Use TypeScript strict mode.
- Run linter before committing:
cd backend && npm run lint
- Run tests:
cd backend && npm test
- Use functional components with hooks.
- Use Tailwind CSS for styling.
- Follow the existing component structure in
src/components/.
- Run tests:
cd contracts cargo test
- Ensure no compiler warnings:
cargo clippy
cd backend
npm test # Run all tests
npm test -- --watch # Watch modecd contracts
cargo test # Run all contract tests- Start the demo server:
cd demo && npm start
- Start the dashboard:
cd dashboard && npm run dev
- Open http://localhost:5173 in your browser.
- Keep PRs focused — one feature or fix per PR.
- Include a clear description of what changed and why.
- Reference related issues (e.g.,
Closes #42). - Ensure CI passes before requesting review.
- Be responsive to review feedback.
Please be respectful and constructive in all interactions. We are building a welcoming community for developers of all backgrounds.
If you have questions, feel free to:
- Open a discussion on GitHub
- Check existing documentation in the
docs/directories
Thank you for contributing to AnchorPoint!