Skip to content

Commit 7e28b8d

Browse files
authored
Merge pull request #725 from temitope-007/feature/issue-652-664
feat(docs): Add sequence diagrams and expand open source issues (#652, #664)
2 parents 52b7d7e + bf01774 commit 7e28b8d

2 files changed

Lines changed: 162 additions & 29 deletions

File tree

ARCHITECTURE_DIAGRAMS.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,3 +386,48 @@ This comprehensive architecture ensures:
386386
- ✅ Perfect database isolation
387387
- ✅ Production safety
388388
- ✅ Full CI/CD automation
389+
390+
## Freighter Pledge Signing Flow
391+
392+
```mermaid
393+
sequenceDiagram
394+
participant User
395+
participant Frontend
396+
participant Freighter Wallet
397+
participant Soroban RPC
398+
participant Smart Contract
399+
400+
User->>Frontend: Click "Pledge" & Enter Amount
401+
Frontend->>Freighter Wallet: Request Signature (XDR)
402+
Freighter Wallet-->>User: Prompt for Approval
403+
User->>Freighter Wallet: Approve Transaction
404+
Freighter Wallet-->>Frontend: Return Signed Transaction
405+
Frontend->>Soroban RPC: Submit Transaction
406+
Soroban RPC->>Smart Contract: Execute Pledge
407+
Smart Contract-->>Soroban RPC: Transaction Success (Events)
408+
Soroban RPC-->>Frontend: Return TxHash & Success
409+
Frontend-->>User: Display Success Notification
410+
```
411+
412+
![Pledge Flow Fallback](https://raw.githubusercontent.com/temitope-007/stellar-goal-vault/main/docs/assets/pledge_flow.png)
413+
414+
## Refund Flow
415+
416+
```mermaid
417+
sequenceDiagram
418+
participant Contributor
419+
participant Frontend
420+
participant Soroban RPC
421+
participant Smart Contract
422+
423+
Note over Contributor, Smart Contract: Campaign Deadline Passed & Funding Failed
424+
Contributor->>Frontend: Click "Refund"
425+
Frontend->>Soroban RPC: Submit Refund Transaction
426+
Soroban RPC->>Smart Contract: Execute Refund Call
427+
Smart Contract->>Smart Contract: Verify Failed State & Contributor Amount
428+
Smart Contract-->>Soroban RPC: Transfer Asset Back & Return Success
429+
Soroban RPC-->>Frontend: Return TxHash
430+
Frontend-->>Contributor: Display Refund Success Notification
431+
```
432+
433+
![Refund Flow Fallback](https://raw.githubusercontent.com/temitope-007/stellar-goal-vault/main/docs/assets/refund_flow.png)

OPEN_SOURCE_ISSUES.md

Lines changed: 117 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,129 @@
11
# Open Source Issues To Publish
22

3+
This document outlines 20+ contribution opportunities for the Stellar Goal Vault repository.
4+
35
## 1. Implement Freighter-signed pledge transactions
6+
**Difficulty:** Advanced
7+
**Estimated Effort:** 2 weeks
8+
**Files to Modify:** `frontend/src/components/PledgeButton.tsx`, `frontend/src/services/stellar.ts`
9+
**Tags:** enhancement, soroban
410

5-
Labels:
6-
- enhancement
7-
- help wanted
8-
- soroban
11+
## 2. Sync campaign activity from Soroban RPC events
12+
**Difficulty:** Intermediate
13+
**Estimated Effort:** 1 week
14+
**Files to Modify:** `backend/src/workers/indexer.ts`, `backend/src/db/schema.sql`
15+
**Tags:** backend, indexer
916

10-
Why it matters:
11-
- this is the biggest missing piece between MVP and real Stellar usage
17+
## 3. Add filters and sort presets to the dashboard
18+
**Difficulty:** Beginner
19+
**Estimated Effort:** 2 days
20+
**Files to Modify:** `frontend/src/pages/Dashboard.tsx`, `frontend/src/components/FilterBar.tsx`
21+
**Tags:** frontend, ux, good first issue
1222

13-
Acceptance criteria:
14-
- contributors sign pledge transactions with Freighter
15-
- UI shows transaction hash and status
16-
- timeline displays signed transaction metadata
17-
- backend can reconcile final pledge state after submission
23+
## 4. Update README with local setup instructions
24+
**Difficulty:** Beginner
25+
**Estimated Effort:** 1 day
26+
**Files to Modify:** `README.md`
27+
**Tags:** docs, good first issue
1828

19-
## 2. Sync campaign activity from Soroban RPC events
29+
## 5. Implement comprehensive unit tests for Campaign creation
30+
**Difficulty:** Intermediate
31+
**Estimated Effort:** 3 days
32+
**Files to Modify:** `backend/tests/unit/campaign.test.ts`
33+
**Tags:** backend, testing
2034

21-
Labels:
22-
- backend
23-
- indexer
24-
- good first issue
35+
## 6. Fix mobile layout overflow on Campaign Details page
36+
**Difficulty:** Beginner
37+
**Estimated Effort:** 1 day
38+
**Files to Modify:** `frontend/src/styles/campaignDetails.css`
39+
**Tags:** frontend, css, good first issue
2540

26-
Acceptance criteria:
27-
- background worker polls or subscribes to contract events
28-
- local SQLite state stays aligned with on-chain campaign actions
29-
- duplicate events are handled safely
41+
## 7. Refactor Error Handling in API Gateway
42+
**Difficulty:** Intermediate
43+
**Estimated Effort:** 1 week
44+
**Files to Modify:** `backend/src/api/gateway.ts`, `backend/src/utils/errors.ts`
45+
**Tags:** backend, refactor
3046

31-
## 3. Add filters and sort presets to the dashboard
47+
## 8. Add GitHub Actions CI for running E2E Playwright tests
48+
**Difficulty:** Advanced
49+
**Estimated Effort:** 1.5 weeks
50+
**Files to Modify:** `.github/workflows/e2e.yml`, `playwright.config.ts`
51+
**Tags:** ci, testing
52+
53+
## 9. Create a Dark Mode toggle in the Frontend
54+
**Difficulty:** Intermediate
55+
**Estimated Effort:** 3 days
56+
**Files to Modify:** `frontend/src/App.tsx`, `frontend/tailwind.config.js`
57+
**Tags:** frontend, ux
58+
59+
## 10. Add ESLint and Prettier pre-commit hooks using Husky
60+
**Difficulty:** Beginner
61+
**Estimated Effort:** 1 day
62+
**Files to Modify:** `package.json`, `.husky/pre-commit`
63+
**Tags:** tooling, good first issue
64+
65+
## 11. Implement Campaign Claim logic for successful campaigns
66+
**Difficulty:** Advanced
67+
**Estimated Effort:** 2 weeks
68+
**Files to Modify:** `contracts/src/campaign.rs`, `contracts/src/lib.rs`
69+
**Tags:** soroban, rust
70+
71+
## 12. Create API endpoint for fetching campaign analytics
72+
**Difficulty:** Intermediate
73+
**Estimated Effort:** 1 week
74+
**Files to Modify:** `backend/src/controllers/analytics.ts`, `backend/src/routes.ts`
75+
**Tags:** backend, api
76+
77+
## 13. Localize Frontend strings to Spanish
78+
**Difficulty:** Beginner
79+
**Estimated Effort:** 2 days
80+
**Files to Modify:** `frontend/src/i18n/es.json`
81+
**Tags:** frontend, i18n, good first issue
82+
83+
## 14. Migrate SQLite to PostgreSQL for production readiness
84+
**Difficulty:** Advanced
85+
**Estimated Effort:** 3 weeks
86+
**Files to Modify:** `backend/src/db/connection.ts`, `docker-compose.yml`
87+
**Tags:** backend, database
88+
89+
## 15. Standardize button components across the application
90+
**Difficulty:** Intermediate
91+
**Estimated Effort:** 3 days
92+
**Files to Modify:** `frontend/src/components/common/Button.tsx`, `frontend/src/pages/*.tsx`
93+
**Tags:** frontend, design-system
94+
95+
## 16. Add rate limiting middleware to public API routes
96+
**Difficulty:** Intermediate
97+
**Estimated Effort:** 2 days
98+
**Files to Modify:** `backend/src/middleware/rateLimiter.ts`
99+
**Tags:** backend, security
100+
101+
## 17. Design and implement a 404 Not Found page
102+
**Difficulty:** Beginner
103+
**Estimated Effort:** 1 day
104+
**Files to Modify:** `frontend/src/pages/NotFound.tsx`, `frontend/src/App.tsx`
105+
**Tags:** frontend, ux
106+
107+
## 18. Write architecture documentation for Indexer service
108+
**Difficulty:** Intermediate
109+
**Estimated Effort:** 1 week
110+
**Files to Modify:** `docs/INDEXER_ARCHITECTURE.md`
111+
**Tags:** docs, architecture
112+
113+
## 19. Optimize Docker image sizes by utilizing multi-stage builds
114+
**Difficulty:** Intermediate
115+
**Estimated Effort:** 3 days
116+
**Files to Modify:** `Dockerfile`, `backend/Dockerfile`
117+
**Tags:** devops, docker
32118

33-
Labels:
34-
- frontend
35-
- ux
36-
- good first issue
119+
## 20. Implement JWT refresh token rotation
120+
**Difficulty:** Advanced
121+
**Estimated Effort:** 2 weeks
122+
**Files to Modify:** `backend/src/controllers/auth.ts`, `backend/src/middleware/auth.ts`
123+
**Tags:** backend, security
37124

38-
Acceptance criteria:
39-
- filter by asset and status
40-
- sort by deadline, amount raised, and newest
41-
- query params preserve dashboard state
125+
## 21. Add user avatar upload feature
126+
**Difficulty:** Intermediate
127+
**Estimated Effort:** 1 week
128+
**Files to Modify:** `frontend/src/components/Profile.tsx`, `backend/src/controllers/user.ts`
129+
**Tags:** fullstack, feature

0 commit comments

Comments
 (0)