22
33Thank you for your interest in contributing to the DataTalks.Club FAQ! This guide will help you understand how to propose new FAQ entries or updates.
44
5- ## Proposing a New FAQ Entry
5+ ## FAQ Proposal Form
66
77We have an automated system that helps maintain the FAQ repository. Here's how to propose a new FAQ entry:
88
9- ### 1. Create a New Issue
10-
1191 . Go to the [ FAQ Proposal form] ( https://github.com/DataTalksClub/faq/issues/new?template=faq-proposal.yml )
12102 . Fill out the form:
1311 - ** Course** : Which course this FAQ is for (e.g., ` machine-learning-zoomcamp ` )
1412 - ** Question** : The FAQ question
1513 - ** Answer** : A clear, helpful answer with examples if applicable
1614 - Check the validation boxes
15+ 3 . Submit your issue
1716
18- ### 2. Automated Processing
19-
20- Once you submit your issue, our FAQ Bot will automatically:
17+ After that, our FAQ bot will:
2118
22191 . ** Analyze your proposal** using AI to compare it with existing FAQs
23202 . ** Make a decision** :
2421 - ** NEW** : Create a new FAQ entry if the question isn't covered
2522 - ** UPDATE** : Update an existing FAQ if your proposal adds valuable context
2623 - ** DUPLICATE** : Mark as duplicate if the question is already fully answered
2724
28- ### 3. What Happens Next
29-
30- #### For NEW or UPDATE Decisions
31-
32- - A Pull Request will be automatically created with the proposed changes
33- - The PR will include:
34- - The new or modified FAQ file(s)
35- - Explanation of why this action was chosen
36- - Section placement and reasoning
37- - A maintainer will review the PR
38- - Once approved and merged, your FAQ contribution will be live!
39- - The originating issue will be automatically closed when the PR is merged
25+ If it's NEW or UPDATE, the bot will create a PR with the changes. If it's DUPLICATE,
26+ the issue will be automatically closed.
4027
41- #### For DUPLICATE Decisions
28+ ## Writing Good FAQ Guidelines
4229
43- - The bot will comment on your issue with:
44- - Explanation of why it's considered a duplicate
45- - Link to the existing FAQ that covers your question
46- - Link to the source file
47- - The issue will be automatically closed
48- - If you believe this is incorrect, you can reopen and mention a maintainer
49-
50- ## Writing Good FAQ Entries
51-
52- ### Question Guidelines
30+ Question:
5331
5432- Be specific and clear
5533- Use the actual words students might search for
@@ -58,105 +36,20 @@ Once you submit your issue, our FAQ Bot will automatically:
5836 - ✅ "How do I install Python dependencies using uv?"
5937 - ❌ "Dependencies"
6038
61- ### Answer Guidelines
39+ Answer
6240
6341- Start with a direct answer
6442- Include code examples when relevant
6543- Add links to documentation or resources
6644- Keep it concise but complete
6745- Use markdown formatting for readability
6846
69- ** Example:**
70-
71- ### Course
72- machine-learning-zoomcamp
73-
74- ### Question
75- How do I run the tests for this project?
76-
77- ### Answer
78- To run all tests, use:
79-
80- ``` bash
81- make test
82- ```
83-
84- For unit tests only:
85-
86- ``` bash
87- make test-unit
88- ```
89-
90- For integration tests only:
91-
92- ``` bash
93- make test-int
94- ```
95-
96- See the [ testing documentation] ( tests/README.md ) for more details.
97-
98- ## Manual Contributions
99-
100- If you prefer to contribute directly via Pull Request:
101-
102- 1 . Fork the repository
103- 2 . Create a new branch: ` git checkout -b faq/your-topic `
104- 3 . Add your FAQ file in the appropriate location:
105- - ` _questions/{course}/{section}/{NNN}_{id}_{slug}.md `
106- 4 . Follow the frontmatter format:
107-
108- ``` markdown
109- ---
110- id: abc123
111- question: 'Your question here?'
112- sort_order: 10
113- ---
114-
115- Your answer content here.
116- ```
117-
118- 5 . Update ` _questions/{course}/_metadata.yaml ` if adding a new section
119- 6 . Run tests: ` make test `
120- 7 . Create a Pull Request
121-
122- ## FAQ File Structure
123-
124- FAQ files are organized as:
125-
126- ```
127- _questions/
128- ├── machine-learning-zoomcamp/
129- │ ├── _metadata.yaml # Course configuration
130- │ ├── general/
131- │ │ ├── 001_abc123_when-does-course-start.md
132- │ │ └── 002_def456_what-are-prerequisites.md
133- │ └── module-1/
134- │ ├── 001_xyz789_install-docker.md
135- │ └── 002_uvw456_docker-errors.md
136- └── data-engineering-zoomcamp/
137- └── ...
138- ```
139-
140- ### Frontmatter Fields
141-
142- - ** id** (required): Unique 10-character identifier
143- - ** question** (required): The FAQ question
144- - ** sort_order** (required): Integer for ordering within section
145- - ** images** (optional): Array of image objects for embedded images
146-
147- ### Markdown Content
148-
149- - Write the answer in markdown
150- - Use code blocks with language specifications
151- - Include links where helpful
152- - Keep formatting clean and readable
15347
15448## Questions or Issues?
15549
15650If you have questions about contributing or encounter issues with the FAQ Bot:
15751
158- 1 . Check existing issues for similar questions
52+ 1 . Check existing issues for similar problems
159532 . Create a new issue with the "question" or "bug" label
160- 3 . Tag a maintainer if urgent
16154
16255Thank you for helping improve the DataTalks.Club FAQ! 🎉
0 commit comments