StellarAid Backend is the server-side API powering the StellarAid crowdfunding platform — a blockchain‑enabled system built on the Stellar network to support transparent, secure, and efficient fundraising for social impact initiatives.
- Node.js (v18 or higher)
- npm or yarn
- PostgreSQL (v14 or higher)
# Clone the repository
git clone https://github.com/YOUR_USERNAME/stellaraid-api.git
cd stellaraid-api
# Install dependencies
npm install
# Setup environment variables
cp .env.example .env
# Edit .env with your database credentials
# Start development server
npm run start:devThe application will be running at http://localhost:3000
/src
/modules # Feature modules (auth, users, projects, etc.)
/auth
/users
/projects
/donations
/wallet
/admin
/notifications
/common # Shared utilities, filters, interceptors
/filters # Exception filters
/interceptors # Request/response interceptors
/middleware # Custom middleware
/services # Shared services (logger, etc.)
/database # Database configuration and Prisma setup
/config # Application configuration
# Development
npm run start:dev # Start with hot-reload
npm run start:debug # Start with debug mode
# Production
npm run build # Build the application
npm run start:prod # Start production server
# Testing
npm run test # Run unit tests
npm run test:watch # Run tests in watch mode
npm run test:cov # Run tests with coverage
npm run test:e2e # Run e2e tests
# Database
npx prisma generate # Generate Prisma Client
npx prisma migrate # Run database migrations
npx prisma studio # Open Prisma Studio
# Code Quality
npm run lint # Lint code with ESLint
npm run format # Format code with Prettier- Discover global fundraising campaigns
- Donate in XLM or Stellar assets
- Wallet integration (Freighter, Albedo, Lobstr)
- On-chain transparency: verify all transactions
- Create social impact projects
- Accept multi-asset contributions
- Real-time donation tracking
- Withdraw funds directly on-chain
- Campaign approval workflow
- User & KYC management
- Analytics dashboard
StellarAid Backend is built with:
- NestJS
- PostgreSQL
- Prisma ORM
- Horizon API integration
- Worker processes (BullMQ)
StellarAid API includes Swagger (OpenAPI) documentation for easy exploration and testing of endpoints.
When the application is running with Swagger enabled:
- Swagger UI: http://localhost:3000/docs
- OpenAPI JSON: http://localhost:3000/docs-json
- Click the "Authorize" button in the top right of the Swagger UI
- Enter your JWT token in the format:
Bearer <your-token> - Click "Authorize" and close the dialog
- All protected endpoints will now include the Authorization header
Swagger is controlled via environment variables:
| Variable | Description | Default |
|---|---|---|
NODE_ENV |
Environment mode (development, production, test) |
development |
ENABLE_SWAGGER |
Override to enable/disable Swagger explicitly | - |
- Development: Swagger is enabled by default
- Production: Swagger is disabled by default (set
ENABLE_SWAGGER=trueto override) - Explicit override: Set
ENABLE_SWAGGER=trueorENABLE_SWAGGER=falseto force enable/disable regardless of environment
# Enable Swagger in production (not recommended for public APIs)
NODE_ENV=production
ENABLE_SWAGGER=true
# Or disable in development
NODE_ENV=development
ENABLE_SWAGGER=falseClick the "Fork" button in the top‑right of the GitHub repo and clone your fork:
git clone https://github.com/YOUR_USERNAME/stellaraid-api.git
cd stellaraid-apibash cp .env.example .env npm install npm run start:dev
git checkout -b feature/add-donation-flowUse conventional commits:
feat: add wallet connection endpoint
fix: resolve donation API error
docs: update project README
refactor: clean up project creation formPush your branch:
git push origin feature/add-donation-flowOpen a Pull Request from your fork back to the main branch.
MIT License — free to use, modify, and distribute.