Skip to main content

๐ŸŒŸ DocMint: Professional README & Documentation Generator - Transform your projects into professionally documented masterpieces with AI-powered README generation

Project description

๐ŸŒŸ DocMint

Professional README & Documentation Generator

PyPI version Python License: MIT Downloads Code style: black

Transform your projects into professionally documented masterpieces with AI-powered README generation โœจ

๐Ÿš€ Quick Start โ€ข ๐Ÿ“– Documentation โ€ข ๐ŸŽฏ Features โ€ข ๐Ÿค Contributing


๐ŸŽฏ What is DocMint?

DocMint is a powerful Python package that automatically generates comprehensive, professional README files for your projects. Simply point it at your codebase, and watch as it analyzes your files, understands your project structure, and creates beautiful documentation that makes your project shine.

๐Ÿ’ก Perfect for developers who want professional documentation without the hassle!

โœจ Key Highlights

๐Ÿ” Smart Analysis - Automatically detects project type and structure
๐ŸŽจ Beautiful Output - Generates professional, well-formatted README files
๐ŸŒ Cross-Platform - Works seamlessly on Windows, macOS, and Linux
โšก Lightning Fast - Generate comprehensive docs in seconds
๐Ÿ› ๏ธ Highly Configurable - Customize output to match your needs
๐Ÿšซ Smart Filtering - Exclude unwanted files and directories with patterns


๐Ÿš€ Installation

Install from PyPI (Recommended)

pip install docmint

Install from Source

git clone https://github.com/kingsleyesisi/docmint.git
cd docmint
pip install -e .

Verify Installation

docmint --help

๐Ÿ’ป Usage

๐ŸŽฏ Quick Start

Generate a README for your current project:

docmint

๐Ÿ“ Analyze Specific Directory

docmint -d /path/to/your/project

๐Ÿ’ฌ Generate from Description

docmint -p "My awesome web application built with Flask and React"

๐Ÿšซ Exclude Files and Directories

# Exclude specific directories
docmint --exclude-dir "temp,cache,logs"

# Exclude specific files (supports wildcards)
docmint --exclude-file "*.log,*.tmp,secret.txt"

# Exclude with patterns
docmint --exclude-file "tests/*,docs/*.md"

# Combine multiple exclusions
docmint --exclude-dir node_modules,dist --exclude-file "*.log,temp*"

๐ŸŽจ Advanced Usage

# Specify project type and output file
docmint -t Python -o MyAwesome-README.md

# Skip contributing section
docmint --no-contributing

# Use custom backend
docmint --url http://localhost:8000

# Silent mode (no banner)
docmint --no-banner

# Show current configuration
docmint --show-config

๐Ÿ› ๏ธ Command Line Options

Option Short Description Example
--directory -d Project directory to analyze -d ./my-project
--prompt -p Generate from text description -p "Flask API server"
--type -t Specify project type -t Python
--output -o Output filename -o DOCUMENTATION.md
--exclude-dir Exclude directories (supports wildcards) --exclude-dir "temp*,cache"
--exclude-file Exclude files (supports wildcards) --exclude-file "*.log,secret*"
--no-contributing Skip contributing section --no-contributing
--url Custom backend URL --url http://localhost:8000
--no-banner Skip banner display --no-banner
--show-config Show current configuration --show-config
--help -h Show help message --help

๐Ÿšซ Exclusion Patterns

DocMint provides powerful exclusion capabilities to filter out unwanted files and directories:

๐Ÿ“ Directory Exclusions

# Exclude specific directories
docmint --exclude-dir "node_modules,dist,build"

# Use wildcards
docmint --exclude-dir "temp*,cache*,*_backup"

# Multiple exclude-dir arguments
docmint --exclude-dir node_modules --exclude-dir dist --exclude-dir "temp*"

๐Ÿ“„ File Exclusions

# Exclude specific files
docmint --exclude-file "secret.txt,config.local.json"

# Use wildcards for file patterns
docmint --exclude-file "*.log,*.tmp,*.cache"

# Exclude files in specific paths
docmint --exclude-file "tests/*,docs/*.md,src/temp*"

๐Ÿ”ง Default Exclusions

DocMint automatically excludes common directories and files:

Default Excluded Directories:

  • node_modules, .git, __pycache__, venv, dist, build
  • .next, target, vendor, coverage, .vs, Pods

Default Excluded Files:

  • *.log, *.tmp, *.cache, *.lock, *.pyc
  • .DS_Store, Thumbs.db, *.swp, *.swo

๐ŸŽจ Features

Feature Description
๐Ÿค– AI-Powered Analysis Intelligent project understanding and documentation generation
๐Ÿ” Smart Detection Automatically identifies project type, dependencies, and structure
๐Ÿ“ Professional Templates Beautiful, industry-standard README formats
๐ŸŒˆ Colorful CLI Rich terminal output with progress indicators and status updates
โš™๏ธ Configurable Extensive configuration options for customized output
๐Ÿšซ Smart Filtering Advanced file and directory exclusion with wildcard support
๐Ÿ”— API Integration Seamless integration with DocMint cloud services
๐Ÿ“Š File Analysis Comprehensive project file scanning and summarization
๐Ÿ›ก๏ธ Error Handling Robust error handling with helpful diagnostic messages

๐ŸŽฏ Supported Project Types

  • ๐Ÿ Python (Django, Flask, FastAPI, etc.)
  • ๐ŸŸจ JavaScript/TypeScript (Node.js, React, Vue, Angular)
  • โ˜• Java (Spring, Maven, Gradle)
  • ๐Ÿฆ€ Rust (Cargo projects)
  • ๐Ÿน Go (Go modules)
  • ๐Ÿ’Ž Ruby (Rails, Gems)
  • ๐Ÿ˜ PHP (Laravel, Composer)
  • โšก C/C++ (CMake, Make)
  • ๐Ÿ”ท C#/.NET (MSBuild projects)
  • ๐Ÿƒ Swift (Xcode projects)
  • ๐ŸŽฏ Kotlin (Android, JVM)
  • ๐ŸŒ Web Development (HTML, CSS, JavaScript)

โš™๏ธ Configuration

DocMint uses a configuration file located at ~/.docmint/config.json for persistent settings.

๐Ÿ“‹ Default Configuration

{
    "backend_url": "https://docmint.onrender.com",
    "default_project_type": "auto",
    "include_contributing": true,
    "max_file_size": 104857600,
    "max_files": 150,
    "excluded_dirs": [
        "node_modules", ".git", "__pycache__", 
        "venv", "dist", "build", ".next",
        "coverage", ".vs", "Pods"
    ],
    "excluded_files": [
        "*.log", "*.tmp", "*.cache", "*.lock",
        ".DS_Store", "Thumbs.db", "*.pyc"
    ],
    "supported_extensions": [
        ".py", ".js", ".ts", ".jsx", ".tsx", 
        ".java", ".cpp", ".go", ".rs", ".php"
    ]
}

๐Ÿ”ง Customization

Edit the configuration file to customize DocMint's behavior:

# View current configuration
docmint --show-config

# Open configuration file for editing
nano ~/.docmint/config.json

๐Ÿ“ Configuration Options

Option Type Description
backend_url string API endpoint URL
max_file_size integer Maximum file size in bytes
max_files integer Maximum number of files to analyze
excluded_dirs array Default directories to exclude
excluded_files array Default file patterns to exclude
supported_extensions array File extensions to include

๐ŸŒ API Integration

DocMint integrates with cloud services for enhanced README generation:

๐Ÿ”— Available Endpoints

Endpoint Method Purpose
/api/health/ GET Health check
/api/generate/ POST Generate from prompt
/api/generate-from-files/ POST Generate from files

๐Ÿ“ก Example API Usage

import requests

# Generate README from prompt
response = requests.post(
    "https://docmint.onrender.com/api/generate/",
    json={"message": "Python web scraping tool"}
)

readme_content = response.json()["answer"]

๐Ÿš€ Development

๐Ÿ› ๏ธ Setting Up Development Environment

# Clone the repository
git clone https://github.com/kingsleyesisi/docmint.git
cd docmint

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -e .
pip install -r requirements.txt

๐Ÿงช Running Tests

# Run tests (when available)
python -m pytest

# Run with coverage
python -m pytest --cov=docmint

๐Ÿ“ฆ Building Package

# Build distribution packages
python -m build

# Upload to PyPI (maintainers only)
python -m twine upload dist/*

๐Ÿค Contributing

We welcome contributions! Here's how you can help make DocMint even better:

๐ŸŽฏ Ways to Contribute

  • ๐Ÿ› Report Bugs - Found an issue? Let us know!
  • ๐Ÿ’ก Suggest Features - Have ideas for improvements?
  • ๐Ÿ“ Improve Documentation - Help make our docs clearer
  • ๐Ÿ”ง Submit Code - Fix bugs or add new features

๐Ÿ“‹ Contribution Process

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“œ Code Style

We use Black for code formatting:

# Format code
black docmint/

# Check formatting
black --check docmint/

๐Ÿ› Troubleshooting

Common Issues & Solutions

๐Ÿ”Œ Connection Issues

Problem: Cannot connect to DocMint backend

Solutions:

  • โœ… Check your internet connection
  • โœ… Verify backend URL in configuration
  • โœ… Try using --url flag with alternative endpoint
  • โœ… Check firewall settings
๐Ÿ“ File Encoding Errors

Problem: Encoding errors when reading files

Solutions:

  • โœ… Ensure files are UTF-8 encoded
  • โœ… Check for binary files in project directory
  • โœ… Add problematic files to exclusion list with --exclude-file
โšก Performance Issues

Problem: Slow processing for large projects

Solutions:

  • โœ… Use --exclude-dir to exclude large directories
  • โœ… Use --exclude-file to exclude unnecessary files
  • โœ… Reduce max_files in configuration
  • โœ… Use specific directory targeting with -d
๐Ÿšซ Too Many Files Excluded

Problem: Important files being excluded

Solutions:

  • โœ… Check your exclusion patterns with --show-config
  • โœ… Use more specific patterns instead of broad wildcards
  • โœ… Review default exclusions in configuration file
  • โœ… Test patterns with smaller directories first

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • ๐ŸŒŸ Contributors - Thank you to all who have contributed to this project
  • ๐Ÿ› ๏ธ Open Source Community - For the amazing tools and libraries
  • ๐Ÿค– AI Technology - Powering intelligent documentation generation

๐ŸŒŸ Star us on GitHub!

If DocMint helped you create better documentation, please consider giving us a star โญ

GitHub stars


Made with โค๏ธ by the DocMint Team

Built with DocMint

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docmint-0.2.0.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docmint-0.2.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file docmint-0.2.0.tar.gz.

File metadata

  • Download URL: docmint-0.2.0.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for docmint-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6981d8fe9bdf9f97926d541547fd9e6c47e731ff16ce52e564ad96fabbcbc99f
MD5 6ee9cfe2b317b4f9e78b782ed787ecc2
BLAKE2b-256 3365feddd9f8baed160131fb6bc3c45d2ba2b2aa67b37d8b15db4249633679cf

See more details on using hashes here.

File details

Details for the file docmint-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: docmint-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for docmint-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd7d5e35c1acb171bc2a259c12aa76afc12b3a26071526e86b7390b66321faae
MD5 f4aeeb80d7b66be2f3861d54431b25a6
BLAKE2b-256 bb496d8d1657564ade49ce27a2354114f1b92c42ef1dcaa199ae7d6c2f3a3552

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page