Thank you for your interest in contributing to MyNotes! This repository is maintained by ZenYukti community, and we welcome contributions from students, educators, and anyone passionate about sharing knowledge.
Our mission: Learn. Build. Share. π
- Code of Conduct
- How Can I Contribute?
- Getting Started
- Contribution Workflow
- Repository Structure Guidelines
- Content Guidelines
- Updating the README
- Creating Interactive HTML Notes
- Commit Message Guidelines
- Pull Request Process
- Review Process
- Questions?
By participating in this project, you agree to:
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what's best for the community
- Show empathy towards other contributors
- Maintain academic integrity (no plagiarism)
You can contribute in several ways:
- π Add New Notes: Create study materials for new subjects or units
- β¨ Improve Existing Notes: Fix errors, add examples, enhance explanations
- π¨ Create Interactive HTML: Build LastMinuteRevision HTML guides
- π Report Issues: Found an error? Let us know!
- π‘ Suggest Improvements: Share ideas for better organization or features
- π Add Practice Problems: Include solved examples and practice questions
- Git installed on your machine
- GitHub account
- Text editor (VS Code recommended)
- Basic understanding of Markdown (for notes)
- Basic HTML/React knowledge (for interactive notes, optional)
-
Fork the repository by clicking the "Fork" button at the top right of the MyNotes repository
-
Clone your fork to your local machine:
git clone https://github.com/YOUR_USERNAME/MyNotes.git cd MyNotes -
Add upstream remote to keep your fork synced:
git remote add upstream https://github.com/zenyukti/MyNotes.git
-
Verify remotes:
git remote -v # origin https://github.com/YOUR_USERNAME/MyNotes.git (fetch) # origin https://github.com/YOUR_USERNAME/MyNotes.git (push) # upstream https://github.com/zenyukti/MyNotes.git (fetch) # upstream https://github.com/zenyukti/MyNotes.git (push)
Before starting work, ensure your fork is up-to-date:
# Fetch latest changes from upstream
git fetch upstream
# Switch to main branch
git checkout main
# Merge upstream changes
git merge upstream/main
# Push to your fork
git push origin mainAlways create a new branch for your contributions. Never work directly on main.
# Create and switch to a new feature branch
git checkout -b feature/add-data-structures-unit1
# OR for fixes
git checkout -b fix/typo-in-python-unit2
# OR for improvements
git checkout -b improve/dstl-unit3-examplesBranch Naming Convention:
feature/subject-description- for new contentfix/issue-description- for bug fixesimprove/area-description- for enhancementsdocs/description- for documentation updates
Follow the guidelines below based on what you're adding.
# Stage your changes
git add .
# Commit with a descriptive message
git commit -m "feat: Add Data Structures Unit-1 notes on Arrays and Stacks"See Commit Message Guidelines for details.
git push origin feature/add-data-structures-unit1- Go to your fork on GitHub
- Click "Compare & pull request"
- Fill in the PR template (see below)
- Submit the pull request
When adding content, follow this exact structure:
MyNotes/
βββ π [Subject Name]/
β βββ π LastMinuteRevision/ # Optional: Quick revision HTML guides
β β βββ Unit-1.html
β β βββ Unit-2.html
β β βββ ...
β β
β βββ Unit-1.md # Required: Detailed markdown notes
β βββ Unit-2.md
β βββ Unit-3.md
β βββ Unit-4.md
β βββ Unit-5.md
If you're adding a completely new subject:
-
Create the subject folder (use proper capitalization and spacing):
mkdir "Subject Name" cd "Subject Name"
-
Create Unit files (markdown is required):
# Create all unit files New-Item Unit-1.md, Unit-2.md, Unit-3.md, Unit-4.md, Unit-5.md -
Optional: Create LastMinuteRevision folder (if you're adding HTML notes):
mkdir LastMinuteRevision cd LastMinuteRevision New-Item Unit-1.html, Unit-2.html, Unit-3.html, Unit-4.html, Unit-5.html
If the subject folder already exists:
-
Navigate to the subject folder:
cd "Subject Name"
-
Add or edit the appropriate unit file:
- For markdown notes:
Unit-X.md - For HTML notes:
LastMinuteRevision/Unit-X.html
- For markdown notes:
Each markdown file should follow this structure:
# Subject Name - Unit X: Topic Name
## Table of Contents
- [Topic 1](#topic-1)
- [Topic 2](#topic-2)
- [Summary](#summary)
---
## Topic 1
### Concept 1.1
**Definition**: Clear definition here
**Example**:
```language
code example if applicableKey Points:
- Point 1
- Point 2
- Point 3
...
Quick recap of all important points
- Question 1
- Question 2
References: List any sources used
#### Content Standards
- β
**Clear and Concise**: Use simple language, avoid unnecessary jargon
- β
**Well-Structured**: Use proper headings hierarchy (H1 > H2 > H3)
- β
**Include Examples**: Provide code examples, diagrams (ASCII art), or real-world applications
- β
**Add Formulas**: Use proper markdown math notation when needed: `$E = mc^2$`
- β
**Use Lists**: Break down complex concepts into bullet points
- β
**Code Blocks**: Use proper syntax highlighting: \`\`\`python, \`\`\`javascript, etc.
- β
**Tables**: Use markdown tables for comparisons
- β
**Visual Elements**: Add diagrams using ASCII art or link to images
- β **No Plagiarism**: Always credit sources, write in your own words
- β **No Incomplete Content**: Don't commit half-finished notes
#### Example Structure
```markdown
# Data Structures - Unit 1: Arrays and Stacks
## Arrays
### What is an Array?
**Definition**: An array is a linear data structure that stores elements of the same type in contiguous memory locations.
**Syntax** (Python):
```python
# Declaration and initialization
arr = [1, 2, 3, 4, 5]
Key Properties:
- Fixed size (in most languages)
- Random access: O(1)
- Insertion/Deletion: O(n)
Example:
# Accessing elements
print(arr[0]) # Output: 1
# Modifying elements
arr[2] = 10
print(arr) # Output: [1, 2, 10, 4, 5]...
---
## π Updating the README
**IMPORTANT**: Every time you add new content, you **MUST** update the `README.md` file.
### What to Update
#### 1. Repository Structure Section
If you added a **new subject**, add it to the directory tree:
```markdown
βββ π [Your New Subject]/ # Brief Description
β βββ π LastMinuteRevision/ # (if applicable)
β β βββ Unit-1.html
β β βββ ...
β β
β βββ Unit-1.md
β βββ Unit-2.md
β βββ ...
Add or update the subject's section in the README. Follow this template:
For subjects WITH interactive HTML notes:
### π [Subject Name]
#### β‘ LastMinuteRevision (Interactive HTML)
| Unit | Topic | π Live Preview | Quick Revision | Detailed Notes |
|------|-------|----------------|----------------|----------------|
| **Unit 1** | [Topic Name] | [π Live](https://zenyukti.github.io/MyNotes/[Subject]/LastMinuteRevision/Unit-1.html) | [π± HTML]([Subject]/LastMinuteRevision/Unit-1.html) | [π Markdown]([Subject]/Unit-1.md) |
| **Unit 2** | [Topic Name] | π Coming Soon | π Coming Soon | [π Markdown]([Subject]/Unit-2.md) |
...For subjects WITHOUT interactive HTML notes:
### π [Subject Name]
| Unit | Topic | Detailed Notes |
|------|-------|----------------|
| **Unit 1** | [Topic Name] | [π Markdown]([Subject]/Unit-1.md) |
| **Unit 2** | [Topic Name] | [π Markdown]([Subject]/Unit-2.md) |
...Update the status table with your contribution:
| Subject | Units | LastMinute HTML | Detailed MD | Status |
|---------|-------|-----------------|-------------|---------|
| **[Your Subject]** | 5 | β
X/5 | β
Y/5 | π‘ In Progress |If you added significant new features or content types, mention them in the "Key Features by Subject" section.
If you're creating LastMinuteRevision HTML files, follow these guidelines:
- React 18 (via CDN)
- ReactDOM 18 (via CDN)
- Babel Standalone (for JSX transformation)
- Tailwind CSS (via CDN)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>[Subject] Unit-X: [Topic] - Last Minute Revision</title>
<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
const { useState } = React;
const YourComponent = () => {
// Your React code here
return (
<div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 p-4">
{/* Your content */}
{/* ZenYukti Branding - REQUIRED */}
<div className="text-center mt-6 pt-4 border-t border-gray-300">
<p className="text-sm text-gray-700 mb-2">
Crafted with π by <a href="https://zenyukti.in" target="_blank" rel="noopener noreferrer" className="font-semibold text-blue-600 hover:text-blue-800 underline">ZenYukti</a>
</p>
<p className="text-xs text-gray-500 italic">Learn. Build. Share.</p>
</div>
</div>
);
};
ReactDOM.render(<YourComponent />, document.getElementById('root'));
</script>
</body>
</html>-
Color Scheme:
- π¨ Yellow: Definitions (
bg-yellow-50,border-yellow-400) - π΅ Blue: Examples (
bg-blue-50,border-blue-400) - π’ Green: Formulas (
bg-green-50,border-green-400) - π£ Purple: Properties (
bg-purple-50,border-purple-400) - π΄ Red: Quick Tips (
bg-red-50,border-red-400)
- π¨ Yellow: Definitions (
-
Collapsible Sections: Use
useStateto create expandable sections -
Code Blocks: Use
<pre>or styled<div>with dark background -
Responsive: Must work on mobile, tablet, and desktop
-
ZenYukti Branding: ALWAYS include the footer branding (shown above)
Before committing, test your HTML file:
# Open in browser
start LastMinuteRevision/Unit-1.html # Windows
open LastMinuteRevision/Unit-1.html # Mac
xdg-open LastMinuteRevision/Unit-1.html # LinuxVerify:
- β All sections expand/collapse properly
- β Content is readable and well-formatted
- β Colors match the scheme
- β Responsive on different screen sizes
- β ZenYukti branding footer is present
We follow Conventional Commits specification for clear and consistent commit history.
<type>(<scope>): <subject>
<body (optional)>
<footer (optional)>
feat: New feature or content additionfix: Bug fix or error correctionimprove: Enhancement to existing contentdocs: Documentation changesstyle: Formatting changes (no content change)refactor: Code/content restructuringtest: Adding tests or exampleschore: Maintenance tasks
# Adding new notes
git commit -m "feat(DataStructures): Add Unit-1 notes on Arrays and Stacks"
# Fixing errors
git commit -m "fix(Python/Unit-2): Correct loop syntax in examples"
# Improving content
git commit -m "improve(DSTL/Unit-3): Add more examples for predicate logic"
# Updating documentation
git commit -m "docs(README): Update Python section with Unit-3 completion"
# Adding interactive HTML
git commit -m "feat(COA): Add LastMinuteRevision HTML for Unit-1"- β Use present tense: "Add feature" not "Added feature"
- β Be specific and descriptive
- β
Reference issue numbers if applicable:
fix(Python): Resolve #42 - β Keep subject line under 72 characters
- β Don't use vague messages like "Update files" or "Fix stuff"
- Your fork is synced with upstream/main
- All changes are in a feature branch (not main)
- Content follows the guidelines above
- README.md is updated appropriately
- Files are in correct folders with proper naming
- No sensitive/personal information included
- HTML files (if any) are tested and working
- Commit messages follow the convention
- No merge conflicts with main branch
Use the same format as commit messages:
feat(Subject): Brief description of changes
## Description
Brief description of what you've added/changed.
## Type of Change
- [ ] New subject/unit notes
- [ ] Bug fix (typo, error correction)
- [ ] Enhancement (improved existing content)
- [ ] Interactive HTML notes
- [ ] Documentation update
## Checklist
- [ ] I have followed the contribution guidelines
- [ ] My content is original or properly credited
- [ ] I have updated the README.md
- [ ] Files are in the correct directory structure
- [ ] I have tested HTML files (if applicable)
- [ ] My commit messages follow the convention
- [ ] I have synced my fork with upstream
## Related Issues
Closes #(issue number) (if applicable)
## Screenshots (if applicable)
Add screenshots of HTML notes or visual changes
## Additional Context
Any other information that reviewers should knowMaintainers will add appropriate labels:
new-content: New notes or subjectsenhancement: Improvements to existing contentbug: Error correctionsdocumentation: README or docs updateshtml-notes: Interactive HTML additionsgood-first-issue: Great for newcomershelp-wanted: Community input needed
- Automated Checks: GitHub Actions will run (if configured)
- Review by Maintainers: ZenYukti team will review your PR
- Feedback: You may receive comments or change requests
- Iteration: Make requested changes and push to same branch
- Approval: Once approved, your PR will be merged
- Celebration: You're now a contributor! π
- Simple fixes: 1-2 days
- New content: 3-5 days
- Major additions: 1 week
If changes are requested:
# Make the requested changes
# Stage and commit
git add .
git commit -m "fix: Address review comments"
# Push to the same branch
git push origin feature/your-branch-nameThe PR will automatically update.
- GitHub Issues: Create an issue
- Email: hello@zenyukti.in
- Community: Join us on Commudle
- π Website: zenyukti.in
- πΌ LinkedIn: linkedin.com/company/zenyukti
- πΈ Instagram: @zenyukti
- π¦ Twitter: @zenyukti
All contributors will be:
- Listed in the repository's contributors section
- Mentioned in release notes for major contributions
- Part of the ZenYukti community
Your contributions help thousands of students learn better. Thank you! π
Learn. Build. Share. π
Contributing to MyNotes is contributing to education for all