Skip to content

Commit 9411f1e

Browse files
authored
Merge pull request #160 from JemimahEkong/docs/contributing.md
docs: add CONTRIBUTING.md with onboarding guide and update README link
2 parents 5cd9d8d + 433519a commit 9411f1e

2 files changed

Lines changed: 4 additions & 154 deletions

File tree

CONTRIBUTING.md

Lines changed: 0 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -1,154 +0,0 @@
1-
# Contributing to Stellar Goal Vault
2-
3-
First off, thank you for considering contributing to Stellar Goal Vault! It's people like you that make the open-source community such an amazing place to learn, inspire, and create.
4-
5-
Stellar Goal Vault is a lightweight crowdfunding MVP for the Stellar ecosystem, and we welcome contributions of all kinds: from bug fixes and documentation to new features and UI improvements.
6-
7-
---
8-
9-
## Table of Contents
10-
11-
1. [Getting Started](#getting-started)
12-
2. [Local Development Setup](#local-development-setup)
13-
3. [Testing](#testing)
14-
4. [Contribution Workflow](#contribution-workflow)
15-
5. [Style & Branch Naming](#style--branch-naming)
16-
6. [Issue Labeling](#issue-labeling)
17-
7. [Pull Request Expectations](#pull-request-expectations)
18-
19-
---
20-
21-
## Getting Started
22-
23-
1. **Fork the repository** on GitHub.
24-
2. **Clone your fork** locally:
25-
```bash
26-
git clone https://github.com/YOUR_USERNAME/stellar-goal-vault.git
27-
cd stellar-goal-vault
28-
```
29-
3. **Set up the upstream remote** to stay synced with the main project:
30-
```bash
31-
git remote add upstream https://github.com/SamixYasuke/stellar-goal-vault.git
32-
```
33-
34-
### Prerequisites
35-
36-
- **Node.js 18+**
37-
- **npm 9+**
38-
- (Optional) **Rust & Soroban CLI** (if you're working on smart contracts)
39-
40-
---
41-
42-
## Local Development Setup
43-
44-
The project is split into three main parts: `frontend`, `backend`, and `contracts`.
45-
46-
### 1. Install All Dependencies
47-
48-
From the repository root, you can install dependencies for both the frontend and backend using:
49-
50-
```bash
51-
npm run install:all
52-
```
53-
54-
### 2. Backend Setup
55-
56-
The backend uses **Express** and **SQLite**.
57-
58-
1. Navigate to the backend directory:
59-
```bash
60-
cd backend
61-
```
62-
2. Create/copy a `.env` file (if needed, see `README.md` for defaults).
63-
3. Run the development server:
64-
```bash
65-
npm run dev
66-
```
67-
The API will be available at `http://localhost:3001`.
68-
69-
### 3. Frontend Setup
70-
71-
The frontend is built with **React + Vite**.
72-
73-
1. Navigate to the frontend directory:
74-
```bash
75-
cd frontend
76-
```
77-
2. Run the development server:
78-
```bash
79-
npm run dev
80-
```
81-
The dashboard will be available at `http://localhost:3000`.
82-
83-
---
84-
85-
## Testing
86-
87-
We use **Vitest** for testing both the frontend and backend.
88-
89-
- **Frontend tests:** Run `npm run test` inside the `/frontend` directory.
90-
- **Backend tests:** Run `npm run test` inside the `/backend` directory.
91-
92-
Before submitting a PR, please ensure that all tests pass.
93-
94-
---
95-
96-
## Contribution Workflow
97-
98-
1. **Find an Issue:** Look for issues labeled `help wanted` or `good first issue`. If you have a new idea, please open an issue first to discuss it.
99-
2. **Assign Yourself:** Comment on the issue to let others know you're working on it.
100-
3. **Create a Branch:** (See [Style & Branch Naming](#style--branch-naming)).
101-
4. **Implementation:** Write your code, following existing patterns and styles.
102-
5. **Add Tests:** If you're adding a feature or fixing a bug, please include tests.
103-
6. **Submit a PR:** Push your branch and open a Pull Request against the `main` branch.
104-
105-
---
106-
107-
## Style & Branch Naming
108-
109-
### Branch Naming Conventions
110-
111-
To keep the repository organized, please use the following prefixes for your branches:
112-
113-
- `feat/` — For new features (e.g., `feat/add-freighter-signing`)
114-
- `fix/` — For bug fixes (e.g., `fix/sqlite-connection-leak`)
115-
- `docs/` — For documentation changes (e.g., `docs/update-api-reference`)
116-
- `refactor/` — For code cleanup or restructuring
117-
- `test/` — For adding or improving tests
118-
119-
### Coding Standards
120-
121-
- Use **TypeScript** for both frontend and backend.
122-
- Follow **standard Prettier/ESLint rules** (automated linting runs in CI).
123-
- Keep components small and modular.
124-
125-
---
126-
127-
## Issue Labeling
128-
129-
We use labels to categorize issues and make it easier for contributors to find tasks:
130-
131-
- `good first issue` — Perfect for new contributors. Usually small, well-defined tasks.
132-
- `help wanted` — Tasks we need help with but might be more complex.
133-
- `bug` — Something isn't working as expected.
134-
- `enhancement` — New features or improvements.
135-
- `frontend` / `backend` / `soroban` — Indicates which part of the stack is involved.
136-
- `ux` — Focuses on user interface and experience improvements.
137-
- `indexer` — Related to the on-chain event indexing logic.
138-
139-
---
140-
141-
## Pull Request Expectations
142-
143-
When you open a PR, please fill out the provided template (if available) or ensure it includes:
144-
145-
- **What changed?** A clear summary of your work.
146-
- **Why?** Link to the issue being addressed.
147-
- **How was it tested?** Detail your manual and automated testing.
148-
- **Screenshots?** Highly recommended for any frontend/UI changes.
149-
150-
---
151-
152-
## Thank You!
153-
154-
Your contributions make this project better for everyone in the Stellar ecosystem. If you have any questions, feel free to reach out via GitHub Issues.

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,10 @@ That issue is already represented in:
249249
- `OPEN_SOURCE_ISSUES.md`
250250
- The frontend backlog panel
251251

252+
## Contributing
253+
Please see the [Contributing Guide](./CONTRIBUTING.md) for setup and contribution guidelines.
254+
255+
252256
## Known limitations
253257

254258
- Campaign creation is still local-first, so pledges will only simulate successfully for campaign IDs that also exist in the configured contract

0 commit comments

Comments
 (0)