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