Thank you for taking the time to contribute. The following guidelines will help you get started quickly and keep the project consistent.
- Code of Conduct
- How to Contribute
- Reporting Bugs
- Suggesting Features
- Development Setup
- Pull Request Guidelines
- Adding or Editing Course Content
- Style Guide
All contributors are expected to maintain a respectful and constructive environment. Harassment, discrimination, or hostile communication of any kind will not be tolerated.
There are several ways to contribute to this project:
- Fix a bug in the application logic or UI
- Improve or correct course content in any module
- Add a new module to the curriculum
- Improve accessibility, performance, or browser compatibility
- Improve documentation
Before opening a bug report, please check the existing issues to avoid duplicates.
When filing a bug report, include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected behavior vs. actual behavior
- Your browser name and version
- Any relevant console errors or screenshots
Feature requests are welcome. Open an issue with the label enhancement and describe:
- The problem you are trying to solve
- The proposed solution or behavior
- Any alternatives you considered
Click the Fork button at the top right of the repository page.
git clone https://github.com/your-username/FastAPI-Learning.git
cd FastAPI-Learningnpm installgit checkout -b feature/your-feature-namenpm run devnpm run lint- Keep pull requests focused on a single change
- Write a clear description of what the PR does and why
- Reference any related issues using
Fixes #123orCloses #123 - Ensure the development server runs without errors before submitting
- Do not include generated files such as
dist/ornode_modules/ - Follow the style guide below
Course modules are Markdown files located in src/content/. Each file must follow this naming convention:
module_XX_topic_name.md
Where XX is the zero-padded module number (e.g., 03, 15).
Each module should follow this format:
# Module Title
## What This Covers
Plain English summary of the topic.
## Required Imports
List and explain every import used.
## Core Concepts
Explanation of the main functions, classes, or patterns.
## Code Example
```python
# working example code
```
## Key Points
- Bullet recap of the most important takeaways
- Do not use emojis in any Markdown file
- All code examples must be complete and runnable
- Use Python type hints consistently
- Keep examples concise and directly relevant to the module topic
- Use functional components with named exports where possible
- Prefer
constoverlet; avoidvar - Use
useCallbackanduseReffor performance-sensitive handlers - Avoid inline styles except for dynamic values that cannot be expressed in Tailwind
- Component filenames use PascalCase:
MarkdownViewer.jsx - Utility filenames use camelCase:
courses.js
- Use Tailwind utility classes as the primary styling approach
- Define design tokens and global resets in
index.css - Avoid
!important - Use
transition-colorsandtransition-allsparingly and only where the animation adds clarity
Use clear, imperative commit messages:
Add search keyboard shortcut for mobile
Fix scroll position reset on module change
Update module 14: clarify JWT expiry example
If you are unsure about anything, open a GitHub Discussion or reach out via the issue tracker.