|
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. |
0 commit comments