📈 GH Trending Explorer 🎲 Surprise me

← all repos

Stellar-Promiscope / promiscope-backend

git clone https://github.com/Stellar-Promiscope/promiscope-backend.git

Promiscope backend service. Accountability API migration is underway; existing routes still serve legacy product workflows.

+0
stars, 24h · #39,911
+~0
stars, 7 days · #44,929
+127
stars, 30 days · #5,808
127
★ total
128
forks · 13 open issues

Star history (as recorded here)

2026-10-20 · 127 ★ 2026-10-23 · 127 ★
LanguageTypeScript
License—
Created2026-10-07 (15d ago)
Last push4d ago
Watchers0
OwnerOrganization

GitHub topics

Links

README excerpt
# Promiscope Backend — API for Community Project Accountability on Stellar
Promiscope helps communities track project commitments, milestones, updates, evidence, and responses. The frontend currently authenticates publishers with Stellar SEP-10 and stores accountability records off-chain.
## Architecture and tree
The service starts in `src/index.ts`, builds its Express application in `src/app.ts`, and separates HTTP handlers under `src/routes/` from business logic in `src/services/`. Middleware, configuration, database access, and GraphQL support are organized in their corresponding `src/` modules. The event indexer consumes Soroban events and persists indexed state through the database layer. Stellar/Soroban calls and Pinata IPFS uploads are external integrations; Redis supports shared cache invalidation and security events.
- `src/` — API, middleware, services, GraphQL, and configuration.
- `tests/` — unit and integration tests.
- `db/` and `migrations/` — database drivers, schema, and migrations.
- `contracts/` — Soroban workspace maintained with this service.
- `clients/typescript/` — generated typed API client.
- `docs/` — authentication, data model, operations, and API references.
## How the project uses Stellar
Stellar SEP-10 provides wallet authentication in the current frontend flow. Existing Soroban contracts and the event indexer support the previous product; they do not yet store accountability projects, evidence, or community responses. A future Soroban revision anchor is under design and would attest to a record hash and timestamp, not prove the record's claims.
## Environment configuration
Copy `.env.example` to `.env`; its comments define defaults, accepted values, and production requirements. The main groups are Stellar (`NETWORK`, `HORIZON_URL`, `SOROBAN_RPC_URL`, contract IDs), auth (`JWT_SECRET`, SEP-10 and API-key settings), database (`DB_DRIVER`, `DB_PATH` or `DATABASE_URL`), IPFS (`PINATA_API_KEY`, `PINATA_SECRET`), and runtime/security settings (`PORT`, CORS, rate limits, logging). Use separate secrets per environment and never commit `.env`.
For local development, use the configured SQLite default and Stellar testnet endpoints. PostgreSQL deployments configure `DATABASE_URL`; Redis, Pinata, and signing credentials are needed only for the corresponding integrations. See DEPLOYMENT.md and the focused guides in docs/.
## Development
Use the Node version declared by `package.json`. Run `npm install`, `npm run dev`, `npm run build`, `npm test`, and `npm run lint` as needed. Contract checks use `npm run test:contracts` and the pinned Rust toolchain. PostgreSQL integration tests use `npm run test:postgres` with a configured database.
Update the OpenAPI contract and regenerate `clients/typescript/` when API types change. Pull requests should describe the behavior and compatibility impact, link an issue, and report validation performed. See CONTRIBUTING.md and SECURITY.md.