Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🌟 StellarAid-api
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.
Folder structure
📌 Features
🎯 For Donors
🎯 For Creators
🎯 For Admins
🏗️ Architecture Overview
StellarAid Backend is built with:
📚 API Documentation (Swagger)
StellarAid API includes Swagger (OpenAPI) documentation for easy exploration and testing of endpoints.
Accessing Swagger UI
When the application is running with Swagger enabled:
Authentication in Swagger
Bearer <your-token>Environment Configuration
Swagger is controlled via environment variables:
NODE_ENVdevelopment,production,test)developmentENABLE_SWAGGERBehavior
ENABLE_SWAGGER=trueto override)ENABLE_SWAGGER=trueorENABLE_SWAGGER=falseto force enable/disable regardless of environmentRate limiting configuration
The application ships with a built‑in rate limiter based on
express-rate-limit. It protects the entire API with a permissive window, and adds a more restrictive policy toall
/api/authendpoints.RATE_LIMIT_WINDOW_MS900000(15m)RATE_LIMIT_MAX100AUTH_RATE_LIMIT_MAX10When a client exceeds the limit the server replies with
429 Too Many Requestsand aRetry-Afterheader indicating how many seconds remainin the current window.
Example
.envConfiguration📌 How to Contribute
1. Fork the Repository
Click 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-apiBackend Setup
bash cp .env.example .env npm install npm run start:dev2. Create a Branch
3. Commit Messages
Use conventional commits:
4. Submitting a Pull Request (PR)
Push your branch:
Open a Pull Request from your fork back to the main branch.
📜 License
MIT License — free to use, modify, and distribute.
Closes #4