Thank you for your interest in contributing! This document provides guidelines for adding new projects and improving existing documentation.
- Getting Started
- Adding a New Project
- Updating Existing Projects
- Documentation Standards
- Pull Request Process
- Code of Conduct
- For Obsidian Users: Install Obsidian
- Recommended Obsidian Plugins:
- Dataview (for dynamic queries)
- Excalidraw (for diagrams)
- Tasks (for task management)
- For General Users: Any Markdown editor
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/Project-Notes.git cd Project-Notes - Create a new branch:
git checkout -b feature/your-project-name
Determine which category your project belongs to:
01 Electronics/- Hardware, embedded systems, IoT02 Web Based/- Web applications, websites03 Linux/- Linux configurations, tools04 AI & ML/- AI and Machine Learning projects05 Robotics/- Robotics projects06 Others/- Miscellaneous projects07 Software/- General software projects
cd "01 Electronics" # or appropriate category
mkdir "Your Project Name"
cd "Your Project Name"Create the main documentation file with proper frontmatter:
---
id: Your_Project_Name
tags:
- project
- electronics # or appropriate category
dg-publish: true
---
# Your Project Name
## Overview
[Brief description of your project]
## Objectives
- What does this project do?
- What problem does it solve?
## Technical Details
[Architecture, components, tech stack]
## Implementation
[How you built it]
## Results/Testing
[Testing results, performance metrics]
## Challenges & Solutions
[Problems faced and how you solved them]
## Future Improvements
- Enhancement idea 1
- Enhancement idea 2
## Resources
- [Links to references]Follow the recommended structure:
Your Project Name/
├── [Project Name].md # Main documentation
├── attachments/ # Images, diagrams, documents
│ ├── images/
│ ├── diagrams/
│ └── docs/
├── code/ # Source code (if applicable)
└── versions/ # Version history (if applicable)
See STRUCTURE.md for detailed guidelines.
Use consistent tags:
#project- Required for all projects#electronics,#website,#ai,#ml,#linux,#robotics- Category tags- Additional descriptive tags as needed
After adding your project, update the relevant index file:
- Electronics projects → Update
Electronics Projects.md - Web projects → Update
Web Based Projects.md - All projects → They'll appear in
Projects.mdautomatically via dataview
Update existing project documentation when:
- Adding new features or versions
- Fixing errors or clarifications
- Including additional resources
- Documenting lessons learned
- Navigate to the project directory
- Make your changes
- Update the "Last Modified" information if manually tracked
- If significant changes, consider creating a new version document:
- Create
versions/Version X.md - Document what changed
- Create
- Use clear commit messages
- Group related changes together
- Test links and references after updates
- Verify images and diagrams still render correctly
- Clear and Concise: Use simple, direct language
- Structured: Use headings and subheadings
- Visual: Include diagrams, images, code snippets
- Complete: Don't leave sections empty; use "TBD" if needed
# Main Title (H1) - Only one per document
## Section (H2)
### Subsection (H3)
#### Sub-subsection (H4)Always specify the language:
```python
def example():
return "Hello World"
```# For external images

# For Obsidian internal links
![[image.png]]# External links
[Link Text](https://example.com)
# Internal Obsidian links
[[Another Document]]
[[Another Document|Display Text]]# Unordered
- Item 1
- Item 2
- Sub-item
# Ordered
1. First
2. Second
3. Third
# Task list
- [ ] Todo item
- [x] Completed item- Create a new Excalidraw file:
diagram-name.excalidraw.md - Draw your diagram
- Save in the
attachments/diagrams/directory - Embed in your documentation:
![[diagram-name.excalidraw.md]]
For inline diagrams, use Mermaid:
```mermaid
graph LR
A[Start] --> B[Process]
B --> C[End]
```- Markdown files: Title Case with spaces
- Good:
Solar Battery Monitor.md - Bad:
solar_battery_monitor.md
- Good:
- Code files: Follow language conventions
- Python:
snake_case.py - JavaScript:
camelCase.js - C/C++:
snake_case.c
- Python:
- Images: Descriptive, lowercase with hyphens
- Good:
circuit-diagram-v2.png - Bad:
IMG_1234.png
- Good:
-
Review Your Changes
git status git diff
-
Check Documentation
- All links work
- Images render correctly
- Code blocks have language specified
- Proper tags are included
-
Test in Obsidian (if applicable)
- Dataview queries work
- Internal links resolve
- Embedded content displays
-
Commit Your Changes
git add . git commit -m "Add: [Project Name] - Brief description"
Commit message prefixes:
Add:- New project or major featureUpdate:- Updates to existing projectFix:- Bug fixes or correctionsDocs:- Documentation-only changesRefactor:- Restructuring without changing functionality
-
Push to Your Fork
git push origin feature/your-project-name
-
Create Pull Request
- Go to the original repository
- Click "New Pull Request"
- Select your branch
- Fill in the PR template:
- Title: Clear, descriptive title
- Description: What you added/changed
- Type: New project, update, fix, etc.
- Category: Electronics, Web, etc.
- Maintainers will review your PR
- They may request changes or clarifications
- Address feedback by pushing new commits
- Once approved, your PR will be merged
- Delete your feature branch
- Update your fork:
git checkout main git pull upstream main git push origin main
- Follow the structure guidelines
- Include comprehensive documentation
- Add relevant images and diagrams
- Use proper markdown formatting
- Write clear commit messages
- Link to related projects and resources
- Update index files when adding projects
- Compress large images
- Use descriptive filenames
- Don't commit sensitive information (passwords, API keys)
- Don't include unnecessary binary files
- Don't leave sections empty without "TBD" markers
- Don't use vague filenames like "image1.png"
- Don't submit incomplete projects without noting WIP status
- Don't break existing links or references
- Don't ignore existing formatting conventions
- Be respectful and inclusive
- Provide constructive feedback
- Focus on the content, not the person
- Be open to different approaches
- Help others learn and grow
- Harassment or discrimination
- Trolling or inflammatory comments
- Personal attacks
- Publishing others' private information
- Other unprofessional conduct
If you have questions or need help:
- Check STRUCTURE.md for detailed guidelines
- Look at existing projects for examples
- Open an issue for questions or clarifications
- Tag maintainers if you need specific help
Contributors will be recognized in:
- Git commit history
- Project documentation (where applicable)
- Future release notes
Thank you for contributing to Project Notes! Your documentation helps others learn and build upon these projects.
Last Updated: 2025-10-23