Skip to content

Commit 2354a42

Browse files
authored
Create CONTRIBUTING.md
1 parent 1588a5d commit 2354a42

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Contributing to The Python Ledger 🐍
2+
3+
First off, thank you for considering contributing! Projects like this live and breathe through community involvement. Whether you are fixing a typo in a lesson or optimizing the Skulpt engine logic, your help is welcome.
4+
5+
---
6+
7+
## 🛠️ Choose Your Path
8+
9+
### 1. Content Contributor (Education)
10+
Help us build the curriculum! We need writers who can explain complex Python concepts in a beginner-friendly way.
11+
* **Target:** [The Python Ledger](https://github.com/razorblade23/the-python-ledger).
12+
* **Format:** Markdown files using our custom `<InteractivePython>` component (You do not need to know React, its rendered automaticly for you if using `interactive` tag on a code block.
13+
* **Goal:** Create hands-on projects (like the Text Adventure) that reinforce the ledger theme or expand and fix lessons.
14+
15+
### 2. Engine Contributor (Development)
16+
Help us polish the interactive experience.
17+
* **Target:** `/src/components/InteractivePython/`.
18+
* **Tech:** React, Skulpt.js, CodeMirror.
19+
* **Focus:** Improving terminal UI, handling edge cases in Python execution, or adding support for Python standard libraries.
20+
21+
---
22+
23+
## 🚀 How to Get Started
24+
25+
1. **Find an Issue:** Check the [GitHub Issues](link-to-your-issues) for tags like `good first issue` or `help wanted`.
26+
2. **Fork & Clone:** Fork the repo and clone it locally.
27+
3. **Install Dependencies:**
28+
```bash
29+
npm install
30+
```
31+
4. **Create a Branch:**
32+
```bash
33+
git checkout -b feature/your-feature-name
34+
```
35+
5. **Run Locally:** Use `npm start` to see your changes in real-time.
36+
37+
---
38+
39+
## 📝 Contribution Guidelines
40+
41+
### Branching Strategy
42+
* **main**: The stable production branch. Do not commit directly here.
43+
* **feature/**: For new lessons or engine features.
44+
* **fix/**: For bug fixes.
45+
46+
### Lesson Standards
47+
If you are writing a new lesson:
48+
* Start with a clear learning objective.
49+
* Use the `<InteractivePython>` component at least once per page for hands-on practice.
50+
* Ensure the code examples are compatible with Python 3 (Skulpt's current implementation).
51+
52+
### Code Style
53+
* We use **Prettier** for formatting. Please run `npm run format` before submitting a PR.
54+
* React components should follow functional patterns and use hooks.
55+
56+
---
57+
58+
## 🤝 Pull Request Process
59+
60+
1. Ensure your code builds locally without errors.
61+
2. Update the `README.md` or documentation if you’ve added a new feature.
62+
3. Submit your PR with a clear description of what changed and why.
63+
4. Link the PR to the relevant Issue (e.g., `Closes #123`).
64+
5. Wait for a maintainer to review your code. We try to respond within 48 hours!
65+
66+
---
67+
68+
## ⚖️ Community Standards
69+
By contributing, you agree to follow our [Code of Conduct](link-to-discord-rules-or-coc-file). Be kind, be helpful, and let’s build the best Python learning tool on the web!
70+
71+
**Questions?** Join our [Discord Community](https://discord.gg/d3AG5AbX7H)!

0 commit comments

Comments
 (0)