Skip to content

Commit 4052881

Browse files
Add CONTRIBUTING.md, move setup instructions from README
1 parent 172129d commit 4052881

File tree

2 files changed

+80
-22
lines changed

2 files changed

+80
-22
lines changed

CONTRIBUTING.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Contributing to Good First Issue
2+
3+
Thanks for your interest in contributing! This guide will help you get started.
4+
5+
## Prerequisites
6+
7+
Before you begin, make sure you have the following installed:
8+
9+
- **Node.js** (v18 or later) - [Download](https://nodejs.org/)
10+
- **Python 3** - [Download](https://www.python.org/downloads/)
11+
- **Bun** - A fast JavaScript runtime and package manager. Install it with:
12+
```bash
13+
curl -fsSL https://bun.sh/install | bash
14+
```
15+
Or see [bun.sh](https://bun.sh/) for other installation methods.
16+
17+
## Project Structure
18+
19+
Good First Issue has two main components:
20+
21+
- **Front-end app** - Built with Nuxt.js, displays the curated list of repositories
22+
- **Data population script** - Written in Python, fetches repository data from GitHub
23+
24+
## Setting Up Locally
25+
26+
1. **Clone the repository**
27+
28+
```bash
29+
git clone https://github.com/DeepSourceCorp/good-first-issue.git
30+
cd good-first-issue
31+
```
32+
33+
2. **Set up sample data files**
34+
35+
The front-end app needs data files to display repositories. Copy the sample files to get started:
36+
37+
```bash
38+
cp data/generated.sample.json data/generated.json
39+
cp data/tags.sample.json data/tags.json
40+
```
41+
42+
These files contain:
43+
- `generated.json` - Repository metadata (stars, issues, languages, etc.)
44+
- `tags.json` - Language tags for filtering
45+
46+
3. **Install dependencies**
47+
48+
```bash
49+
bun install
50+
```
51+
52+
4. **Start the development server**
53+
54+
```bash
55+
bun dev
56+
```
57+
58+
The app will open at [http://localhost:3000](http://localhost:3000).
59+
60+
## Running Tests
61+
62+
To run the data sanity tests:
63+
64+
```bash
65+
python -m pytest gfi/test_data.py
66+
```
67+
68+
Or using unittest directly:
69+
70+
```bash
71+
python gfi/test_data.py
72+
```
73+
74+
## Making Changes
75+
76+
1. Create a new branch for your changes
77+
2. Make your changes and test them locally
78+
3. Submit a pull request with a clear description of what you changed and why

README.md

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,6 @@ To maintain the quality of projects in Good First Issue, please make sure your G
3030

3131
Once your submission is reviewed and approved, it will be added to [goodfirstissue.dev](https://goodfirstissue.dev/).
3232

33-
## Setting up the project locally
33+
## Contributing
3434

35-
Good First Issue has two components — the front-end app built with Nuxt.js and a data population script written in Python.
36-
37-
To contribute new features and changes to the website, you would want to run the app locally. Please follow these steps:
38-
39-
1. Clone the project locally. Make sure you have Python 3 and a recent version of Node.js installed on your computer.
40-
41-
2. Make a copy of the sample data files for your local app to use and rename them to the filename that the app expects. **This step is important, as the front-end app won't work without these data files.**
42-
43-
```bash
44-
$ cp data/generated.sample.json data/generated.json
45-
$ cp data/tags.sample.json data/tags.json
46-
```
47-
48-
3. Build the front-end app and start the development server.
49-
50-
```bash
51-
$ bun install # install the dependencies
52-
$ bun dev # start the development server
53-
```
54-
55-
The app should open in your browser.
35+
Want to contribute? See [CONTRIBUTING.md](CONTRIBUTING.md) for setup instructions and guidelines.

0 commit comments

Comments
 (0)